LLVM API Documentation

Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
llvm Namespace Reference

List of target independent CodeGen pass IDs. More...

Namespaces

 AArch64
 
 AArch64_AM
 AArch64_AM - AArch64 Addressing Mode Stuff.
 
 AArch64AT
 
 AArch64CC
 
 AArch64DB
 
 AArch64DC
 
 AArch64IC
 
 AArch64II
 
 AArch64ISB
 
 AArch64ISD
 
 AArch64Layout
 
 AArch64PRFM
 
 AArch64PState
 
 AArch64SE
 
 AArch64SysReg
 
 AArch64TLBI
 
 AMDGPU
 
 AMDGPUIntrinsic
 
 AMDGPUISD
 
 APIntOps
 
 ARM
 Define some predicates that are used for node matching.
 
 ARM_AM
 ARM_AM - ARM Addressing Mode Stuff.
 
 ARM_ISB
 
 ARM_MB
 
 ARM_MC
 
 ARM_PROC
 
 ARMBuildAttrs
 
 ARMCC
 
 ARMCP
 
 ARMII
 
 ARMISD
 
 ARMRI
 Register allocation hints.
 
 AttributeFuncs
 
 bfi_detail
 
 bitc
 
 CallingConv
 
 cl
 
 CodeGenOpt
 
 CodeModel
 
 COFF
 
 COFFYAML
 
 coverage
 
 detail
 Implementation details of the pass manager interfaces.
 
 DOT
 
 dwarf
 
 DWARFFlavour
 
 ELF
 
 ELFYAML
 
 EngineKind
 
 FloatABI
 
 FPOpFusion
 
 GC
 
 GCOV
 
 GraphProgram
 
 hashing
 
 Hexagon
 
 HexagonII
 
 HexagonISD
 
 HexStyle
 
 IndexedInstrProf
 
 InlineConstants
 
 IntervalMapImpl
 
 Intrinsic
 
 ISD
 
 jitprofiling
 
 JumpTable
 
 LCOMM
 
 legacy
 
 LibFunc
 
 lltok
 
 MachineCombinerPattern
 
 MachO
 
 MCD
 
 MCID
 
 MCOI
 
 mdconst
 Transitional API for extracting constants from Metadata.
 
 Mips
 
 Mips16HardFloatInfo
 
 MipsII
 
 MipsISD
 
 MSP430II
 
 MSP430ISD
 
 N86
 
 NVPTX
 
 NVPTXCC
 
 NVPTXII
 
 NVPTXISD
 
 objcarc
 
 object
 
 opt
 
 PatternMatch
 
 PBQP
 
 PICLevel
 
 PICStyles
 
 PPC
 Define some predicates that are used for node matching.
 
 PPCII
 
 PPCISD
 
 RegState
 
 Reloc
 
 RTLIB
 
 sampleprof
 
 ScaledNumbers
 
 Sched
 
 SI
 
 Sparc
 
 SPCC
 
 SPII
 
 SPISD
 
 support
 
 SymbolRewriter
 
 sys
 
 SystemZ
 
 SystemZCP
 
 SystemZICMP
 
 SystemZII
 
 SystemZISD
 
 SystemZMC
 
 TargetOpcode
 
 tgtok
 
 ThreadModel
 
 TLSModel
 
 types
 
 Win64EH
 
 WinEH
 
 X86
 Define some predicates that are used for node matching.
 
 X86_MC
 
 X86Disassembler
 
 X86II
 
 X86ISD
 
 XCore
 
 XCoreISD
 
 yaml
 
 zlib
 

Classes

class  APFloat
 A self-contained host- and target-independent arbitrary-precision floating-point software implementation. More...
 
class  SmallVectorImpl
 
class  APInt
 Class for arbitrary precision integers. More...
 
class  APSInt
 
class  ArrayRef
 
class  MutableArrayRef
 
struct  isPodLike
 
struct  isPodLike< ArrayRef< T > >
 
class  BitVector
 
class  DAGDeltaAlgorithm
 
class  DeltaAlgorithm
 
class  DenseMapIterator
 
class  DenseMapBase
 
class  DenseMap
 
class  SmallDenseMap
 
struct  DenseMapInfo
 
struct  DenseMapInfo< T * >
 
struct  DenseMapInfo< char >
 
struct  DenseMapInfo< unsigned >
 
struct  DenseMapInfo< unsigned long >
 
struct  DenseMapInfo< unsigned long long >
 
struct  DenseMapInfo< int >
 
struct  DenseMapInfo< long >
 
struct  DenseMapInfo< long long >
 
struct  DenseMapInfo< std::pair< T, U > >
 
class  DenseSet
 DenseSet - This implements a dense probed hash-table based set. More...
 
class  df_iterator_storage
 
class  df_iterator_storage< SetType, true >
 
class  df_iterator
 
struct  df_ext_iterator
 
struct  idf_iterator
 
struct  idf_ext_iterator
 
class  EquivalenceClasses
 
class  FoldingSetImpl
 
struct  FoldingSetTrait
 
struct  DefaultFoldingSetTrait
 
struct  ContextualFoldingSetTrait
 
struct  DefaultContextualFoldingSetTrait
 
class  FoldingSetNodeIDRef
 
class  FoldingSetNodeID
 
class  FoldingSetIterator
 
class  FoldingSetBucketIterator
 
class  FoldingSet
 
class  ContextualFoldingSet
 
class  FoldingSetVectorIterator
 
class  FoldingSetVector
 
class  FoldingSetIteratorImpl
 
class  FoldingSetBucketIteratorImpl
 
class  FoldingSetNodeWrapper
 
class  FastFoldingSetNode
 
struct  FoldingSetTrait< T * >
 
struct  FoldingSetTrait< std::pair< T1, T2 > >
 
struct  GraphTraits
 
struct  Inverse
 
struct  GraphTraits< Inverse< Inverse< T > > >
 
class  hash_code
 An opaque object representing a hash code. More...
 
class  iplist
 
class  ilist_iterator
 
struct  ilist_nextprev_traits
 
struct  ilist_traits
 
struct  ilist_sentinel_traits
 
struct  ilist_node_traits
 
struct  ilist_default_traits
 
struct  ilist_traits< const Ty >
 
struct  simplify_type
 
struct  simplify_type< ilist_iterator< NodeTy > >
 
struct  simplify_type< const ilist_iterator< NodeTy > >
 
struct  ilist
 
class  ilist_half_node
 
class  ilist_node
 
class  ImmutableListFactory
 
class  ImmutableListImpl
 
class  ImmutableList
 
struct  DenseMapInfo< ImmutableList< T > >
 
struct  isPodLike< ImmutableList< T > >
 
struct  ImutKeyValueInfo
 
class  ImmutableMap
 
class  ImmutableMapRef
 
class  ImutAVLFactory
 
class  ImutIntervalAVLFactory
 
class  ImutAVLTreeInOrderIterator
 
class  ImutAVLTreeGenericIterator
 
class  ImutAVLTree
 
struct  ImutProfileInfo
 
struct  ImutProfileInteger
 Profile traits for integers. More...
 
struct  ImutProfileInfo< bool >
 Profile traits for booleans. More...
 
struct  ImutProfileInfo< T * >
 
struct  ImutContainerInfo
 
struct  ImutContainerInfo< T * >
 
class  ImmutableSet
 
class  ImmutableSetRef
 
class  IndexedMap
 
class  IntEqClasses
 
struct  IntervalMapInfo
 
struct  IntervalMapHalfOpenInfo
 
class  IntervalMap
 
class  IntervalMapOverlaps
 
class  IntrusiveRefCntPtr
 
class  RefCountedBase
 
class  RefCountedBaseVPTR
 
struct  IntrusiveRefCntPtrInfo
 
class  ThreadSafeRefCountedBase
 A thread-safe version of llvm::RefCountedBase. More...
 
struct  simplify_type< IntrusiveRefCntPtr< T > >
 
struct  simplify_type< const IntrusiveRefCntPtr< T > >
 
class  iterator_facade_base
 CRTP base class which implements the entire standard iterator facade in terms of a minimal subset of the interface. More...
 
class  iterator_adaptor_base
 CRTP base class for adapting an iterator to a different type. More...
 
struct  pointee_iterator
 An iterator type that allows iterating over the pointees via some other iterator. More...
 
class  iterator_range
 A range adaptor for a pair of iterators. More...
 
class  MapVector
 
struct  SmallMapVector
 A MapVector that performs no allocations if smaller than a certain size. More...
 
class  Optional
 
struct  isPodLike< Optional< T > >
 
class  PackedVectorBase
 
class  PackedVectorBase< T, BitNum, BitVectorTy, false >
 
class  PackedVectorBase< T, BitNum, BitVectorTy, true >
 
class  PackedVector
 Store a vector of values using a specific number of bits for each value. Both signed and unsigned types can be used, e.g. More...
 
class  PointerIntPair
 
struct  isPodLike< PointerIntPair< PointerTy, IntBits, IntType > >
 
struct  DenseMapInfo< PointerIntPair< PointerTy, IntBits, IntType > >
 
class  PointerLikeTypeTraits< PointerIntPair< PointerTy, IntBits, IntType, PtrTraits > >
 
struct  PointerUnionTypeSelectorReturn
 
struct  PointerUnionTypeSelector
 Get a type based on whether two types are the same or not. For: More...
 
struct  PointerUnionTypeSelector< T, T, RET_EQ, RET_NE >
 
struct  PointerUnionTypeSelectorReturn< PointerUnionTypeSelector< T1, T2, RET_EQ, RET_NE > >
 
class  PointerUnionUIntTraits
 
class  PointerUnion
 
class  PointerLikeTypeTraits< PointerUnion< PT1, PT2 > >
 
class  PointerUnion3
 
class  PointerLikeTypeTraits< PointerUnion3< PT1, PT2, PT3 > >
 
class  PointerUnion4
 
class  PointerLikeTypeTraits< PointerUnion4< PT1, PT2, PT3, PT4 > >
 
struct  DenseMapInfo< PointerUnion< T, U > >
 
class  po_iterator_storage
 Default po_iterator_storage implementation with an internal set object. More...
 
class  po_iterator_storage< SetType, true >
 Specialization of po_iterator_storage that references an external set. More...
 
class  po_iterator
 
struct  po_ext_iterator
 
struct  ipo_iterator
 
struct  ipo_ext_iterator
 
class  ReversePostOrderTraversal
 
class  PriorityQueue
 
class  scc_iterator
 Enumerate the SCCs of a directed graph in reverse topological order of the SCC DAG. More...
 
class  ScopedHashTable
 
class  ScopedHashTableVal
 
class  ScopedHashTableScope
 
class  ScopedHashTableIterator
 
class  SetVector
 A vector that has set insertion semantics. More...
 
class  SmallSetVector
 A SetVector that performs no allocations if smaller than a certain size. More...
 
class  SmallBitVector
 
class  SmallPtrSetImplBase
 
class  SmallPtrSetIteratorImpl
 
class  SmallPtrSetIterator
 SmallPtrSetIterator - This implements a const_iterator for SmallPtrSet. More...
 
struct  RoundUpToPowerOfTwo
 
struct  RoundUpToPowerOfTwoH
 
struct  RoundUpToPowerOfTwoH< N, false >
 
class  SmallPtrSetImpl
 A templated base class for SmallPtrSet which provides the typesafe interface that is common across all small sizes. More...
 
class  SmallPtrSet
 
class  SmallSet
 
class  SmallSet< PointeeType *, N >
 
class  SmallString
 
class  SmallVectorBase
 This is all the non-templated stuff common to all SmallVectors. More...
 
struct  SmallVectorStorage
 
class  SmallVectorTemplateCommon
 
class  SmallVectorTemplateBase
 
class  SmallVectorTemplateBase< T, true >
 
struct  SmallVectorStorage< T, 1 >
 
struct  SmallVectorStorage< T, 0 >
 
class  SmallVector
 
struct  SparseBitVectorElement
 
struct  ilist_traits< SparseBitVectorElement< ElementSize > >
 
class  SparseBitVector
 
class  SparseMultiSet
 
struct  SparseSetValTraits
 
struct  SparseSetValFunctor
 
struct  SparseSetValFunctor< KeyT, KeyT, KeyFunctorT >
 
class  SparseSet
 
class  Statistic
 
struct  identity
 
struct  less_ptr
 
struct  greater_ptr
 
class  function_ref
 
class  function_ref< Ret(Param1)>
 
class  function_ref< Ret(Param1, Param2)>
 
class  function_ref< Ret(Param1, Param2, Param3)>
 
class  mapped_iterator
 
struct  less_first
 Function object to check whether the first component of a std::pair compares less than the first component of another std::pair. More...
 
struct  less_second
 Function object to check whether the second component of a std::pair compares less than the second component of another std::pair. More...
 
struct  FreeDeleter
 
struct  pair_hash
 
class  StringMapConstIterator
 
class  StringMapIterator
 
class  StringMapEntry
 
class  StringMapEntryBase
 StringMapEntryBase - Shared base class of StringMapEntry instances. More...
 
class  StringMapImpl
 
class  StringMap
 
class  StringRef
 
struct  isPodLike< StringRef >
 
class  StringSet
 StringSet - A wrapper for StringMap that provides set-like functionality. More...
 
class  StringSwitch
 A switch()-like statement whose cases are string literals. More...
 
class  TinyPtrVector
 
class  Triple
 
class  Twine
 
class  UniqueVector
 
struct  VariadicFunction
 Class which can simulate a type-safe variadic function. More...
 
struct  VariadicFunction1
 
struct  VariadicFunction2
 
struct  VariadicFunction3
 
class  AliasAnalysis
 
struct  DenseMapInfo< AliasAnalysis::Location >
 
class  AliasSet
 
class  AliasSetTracker
 
class  AssumptionCache
 A cache of .assume calls within a function. More...
 
class  AssumptionCacheTracker
 An immutable pass that tracks lazily created AssumptionCache objects. More...
 
class  BlockFrequencyInfoImpl
 Shared implementation for block frequency analysis. More...
 
class  BlockFrequencyInfo
 
struct  isPodLike< bfi_detail::BlockMass >
 
class  BlockFrequencyInfoImplBase
 Base class for BlockFrequencyInfoImpl. More...
 
class  BranchProbabilityInfo
 Analysis pass providing branch probability information. More...
 
class  CallGraph
 The basic data container for the call graph of a Module of IR. More...
 
class  CallGraphNode
 A node in the call graph for a module. More...
 
class  CallGraphAnalysis
 An analysis pass to compute the CallGraph for a Module. More...
 
class  CallGraphWrapperPass
 The ModulePass which wraps up a CallGraph and the logic to build it. More...
 
struct  GraphTraits< CallGraphNode * >
 
struct  GraphTraits< const CallGraphNode * >
 
struct  GraphTraits< CallGraph * >
 
struct  GraphTraits< const CallGraph * >
 
class  CallGraphSCCPass
 
class  CallGraphSCC
 CallGraphSCC - This is a single SCC that a CallGraphSCCPass is run on. More...
 
struct  CaptureTracker
 
struct  DOTGraphTraits< const Function * >
 
class  CGSCCAnalysisManagerModuleProxy
 A module analysis which acts as a proxy for a CGSCC analysis manager. More...
 
class  ModuleAnalysisManagerCGSCCProxy
 A CGSCC analysis which acts as a proxy for a module analysis manager. More...
 
class  ModuleToPostOrderCGSCCPassAdaptor
 The core module pass which does a post-order walk of the SCCs and runs a CGSCC pass over each one. More...
 
class  FunctionAnalysisManagerCGSCCProxy
 A CGSCC analysis which acts as a proxy for a function analysis manager. More...
 
class  CGSCCAnalysisManagerFunctionProxy
 A function analysis which acts as a proxy for a CGSCC analysis manager. More...
 
class  CGSCCToFunctionPassAdaptor
 Adaptor that maps from a SCC to its functions. More...
 
struct  CodeMetrics
 Utility to calculate the size and a few similar metrics for a set of basic blocks. More...
 
class  constant_iterator
 
class  Dependence
 
class  FullDependence
 
class  DependenceAnalysis
 
class  DominanceFrontierBase
 
class  ForwardDominanceFrontierBase
 
class  DominanceFrontier
 
struct  DefaultAnalysisGraphTraits
 Default traits class for extracting a graph from an analysis pass. More...
 
class  DOTGraphTraitsViewer
 
class  DOTGraphTraitsPrinter
 
class  DOTGraphTraitsModuleViewer
 
class  DOTGraphTraitsModulePrinter
 
class  FunctionTargetTransformInfo
 
class  InlineCost
 Represents the cost of inlining a function. More...
 
class  InlineCostAnalysis
 Cost analyzer used by inliner. More...
 
class  Interval
 
struct  GraphTraits< Interval * >
 
struct  GraphTraits< Inverse< Interval * > >
 
class  IntervalIterator
 
class  IntervalPartition
 
class  IVStrideUse
 
struct  ilist_traits< IVStrideUse >
 
class  IVUsers
 
class  JumpInstrTableInfo
 
class  LazyCallGraph
 A lazily constructed view of the call graph of a module. More...
 
struct  GraphTraits< LazyCallGraph::Node * >
 
struct  GraphTraits< LazyCallGraph * >
 
class  LazyCallGraphAnalysis
 An analysis pass which computes the call graph for a module. More...
 
class  LazyCallGraphPrinterPass
 A pass which prints the call graph to a raw_ostream. More...
 
class  LazyValueInfo
 This pass computes, caches, and vends lazy value constraint information. More...
 
struct  LibCallAliasAnalysis
 LibCallAliasAnalysis - Alias analysis driven from LibCallInfo. More...
 
struct  LibCallLocationInfo
 
struct  LibCallFunctionInfo
 
class  LibCallInfo
 
class  DominatorTreeBase
 Core dominator tree base class. More...
 
class  LoopInfoBase
 
class  LoopBase
 
class  Loop
 
class  LoopInfo
 
struct  GraphTraits< const Loop * >
 
struct  GraphTraits< Loop * >
 
class  LoopBlocksDFS
 
class  po_iterator_storage< LoopBlocksTraversal, true >
 Specialize po_iterator_storage to record postorder numbers. More...
 
class  LoopBlocksTraversal
 Traverse the blocks in a loop using a depth-first search. More...
 
class  LoopPass
 
class  LPPassManager
 
class  ObjectSizeOffsetVisitor
 Evaluate the size and offset of an object pointed to by a Value* statically. Fails if size or offset are not known at compile time. More...
 
class  ObjectSizeOffsetEvaluator
 Evaluate the size and offset of an object pointed to by a Value*. May create code to compute the result at run-time. More...
 
class  MemDepResult
 
class  NonLocalDepEntry
 
class  NonLocalDepResult
 
class  MemoryDependenceAnalysis
 
class  PHITransAddr
 
struct  PostDominatorTree
 
struct  GraphTraits< PostDominatorTree * >
 
class  PtrUseVisitor
 A base class for visitors over the uses of a pointer value. More...
 
struct  RegionTraits
 
class  RegionBase
 A single entry single exit Region. More...
 
class  RegionInfoBase
 Analysis that detects all canonical Regions. More...
 
struct  RegionTraits< Function >
 
class  FlatIt
 Marker class to iterate over the elements of a Region in flat mode. More...
 
class  RegionNodeBase
 A RegionNode represents a subregion or a BasicBlock that is part of a Region. More...
 
class  RegionNode
 
class  Region
 
class  RegionInfo
 
class  RegionInfoPass
 
class  RNSuccIterator
 Hierarchical RegionNode successor iterator. More...
 
class  RNSuccIterator< FlatIt< NodeType >, BlockT, RegionT >
 Flat RegionNode iterator. More...
 
struct  GraphTraits< RegionInfo * >
 
struct  GraphTraits< RegionInfoPass * >
 
class  RegionPass
 A pass that runs on each Region in a function. More...
 
class  RGPassManager
 The pass manager to schedule RegionPasses. More...
 
class  SCEV
 
struct  FoldingSetTrait< SCEV >
 
struct  SCEVCouldNotCompute
 
class  ScalarEvolution
 
class  SCEVExpander
 
class  SCEVConstant
 
class  SCEVCastExpr
 
class  SCEVTruncateExpr
 
class  SCEVZeroExtendExpr
 
class  SCEVSignExtendExpr
 
class  SCEVNAryExpr
 
class  SCEVCommutativeExpr
 
class  SCEVAddExpr
 
class  SCEVMulExpr
 
class  SCEVUDivExpr
 
class  SCEVAddRecExpr
 
class  SCEVSMaxExpr
 
class  SCEVUMaxExpr
 
class  SCEVUnknown
 
struct  SCEVVisitor
 
class  SCEVTraversal
 
struct  SCEVParameterRewriter
 
struct  SCEVApplyRewriter
 
class  AbstractLatticeFunction
 
class  SparseSolver
 
class  TargetFolder
 TargetFolder - Create constants with target dependent folding. More...
 
class  TargetTransformInfo
 
class  Trace
 
class  BitCodeAbbrevOp
 
struct  isPodLike< BitCodeAbbrevOp >
 
class  BitCodeAbbrev
 
class  BitcodeWriterPass
 Pass for writing a module of IR out to a bitcode file. More...
 
class  BitstreamReader
 
struct  BitstreamEntry
 
class  BitstreamCursor
 
class  BitstreamWriter
 
class  BitcodeDiagnosticInfo
 
class  AsmPrinter
 This class is intended to be used as a driving class for all asm writers. More...
 
class  VirtRegAuxInfo
 Calculate auxiliary information for a virtual register such as its spill weight and allocation hint. More...
 
class  CCValAssign
 CCValAssign - Represent assignment of one arg/retval to a location. More...
 
struct  ForwardedRegister
 
class  CCState
 
class  DFAPacketizer
 
class  VLIWPacketizerList
 
class  DIEAbbrevData
 
class  DIEAbbrev
 
class  DIE
 
class  DIEValue
 
class  DIEInteger
 
class  DIEExpr
 DIEExpr - An expression DIE. More...
 
class  DIELabel
 DIELabel - A label DIE. More...
 
class  DIEDelta
 
class  DIEString
 
class  DIEEntry
 
class  DIETypeSignature
 A signature reference to a type unit. More...
 
class  DIELoc
 DIELoc - Represents an expression location. More...
 
class  DIEBlock
 DIEBlock - Represents a block of values. More...
 
class  DIELocList
 
class  EdgeBundles
 
class  FastISel
 This is a fast-path instruction selection class that generates poor code and doesn't support illegal types or non-trivial lowering, but runs quickly. More...
 
class  ForwardControlFlowIntegrity
 
class  FunctionLoweringInfo
 
struct  GCPoint
 
struct  GCRoot
 
class  GCFunctionInfo
 
class  GCModuleInfo
 
class  GCMetadataPrinter
 
class  GCStrategy
 
class  IntrinsicLowering
 
class  JumpInstrTables
 
struct  latency_sort
 Sorting functions for the Available queue. More...
 
class  LatencyPriorityQueue
 
class  LexicalScope
 
class  LexicalScopes
 
class  VNInfo
 
class  LiveQueryResult
 
class  LiveRange
 
class  LiveInterval
 
class  LiveRangeUpdater
 
class  ConnectedVNInfoEqClasses
 
class  LiveIntervals
 
class  LiveIntervalUnion
 
class  LivePhysRegs
 A set of live physical registers with functions to track liveness when walking backward/forward through a basic block. More...
 
class  LiveRangeEdit
 
class  LiveRegMatrix
 
class  LiveStacks
 
class  LiveVariables
 
struct  ilist_traits< MachineInstr >
 
class  MachineBasicBlock
 
struct  MBB2NumberFunctor
 
struct  GraphTraits< MachineBasicBlock * >
 
struct  GraphTraits< const MachineBasicBlock * >
 
struct  GraphTraits< Inverse< MachineBasicBlock * > >
 
struct  GraphTraits< Inverse< const MachineBasicBlock * > >
 
class  MachineInstrSpan
 
class  MachineBlockFrequencyInfo
 
class  MachineBranchProbabilityInfo
 
class  MachineConstantPoolValue
 
class  MachineConstantPoolEntry
 An entry in a MachineConstantPool. More...
 
class  MachineConstantPool
 The machine constant pool. More...
 
class  MachineDominanceFrontier
 
class  MachineDominatorTree
 
struct  GraphTraits< MachineDomTreeNode * >
 
struct  GraphTraits< MachineDominatorTree * >
 
class  CalleeSavedInfo
 
class  MachineFrameInfo
 Abstract Stack Frame Information. More...
 
struct  ilist_traits< MachineBasicBlock >
 
struct  MachineFunctionInfo
 
class  MachineFunction
 
struct  GraphTraits< MachineFunction * >
 
struct  GraphTraits< const MachineFunction * >
 
struct  GraphTraits< Inverse< MachineFunction * > >
 
struct  GraphTraits< Inverse< const MachineFunction * > >
 
struct  MachineFunctionAnalysis
 
class  MachineFunctionPass
 
class  MachineInstr
 
struct  MachineInstrExpressionTrait
 
class  MachineInstrBuilder
 
class  MIBundleBuilder
 
class  MachineOperandIteratorBase
 
class  MIOperands
 
class  ConstMIOperands
 
class  MIBundleOperands
 
class  ConstMIBundleOperands
 
struct  MachineJumpTableEntry
 
class  MachineJumpTableInfo
 
class  MachineLoop
 
class  MachineLoopInfo
 
struct  GraphTraits< const MachineLoop * >
 
struct  GraphTraits< MachineLoop * >
 
struct  MachinePointerInfo
 
class  MachineMemOperand
 
struct  LandingPadInfo
 
class  MachineModuleInfoImpl
 
class  MachineModuleInfo
 
class  MachineModuleInfoMachO
 
class  MachineModuleInfoELF
 
class  MachineOperand
 
class  MachinePassRegistryListener
 
class  MachinePassRegistryNode
 
class  MachinePassRegistry
 
class  RegisterPassParser
 
struct  MachinePostDominatorTree
 
struct  RegionTraits< MachineFunction >
 
class  MachineRegionNode
 
class  MachineRegion
 
class  MachineRegionInfo
 
class  MachineRegionInfoPass
 
struct  GraphTraits< MachineRegionInfo * >
 
struct  GraphTraits< MachineRegionInfoPass * >
 
class  MachineRegisterInfo
 
class  PSetIterator
 
struct  MachineSchedContext
 
class  MachineSchedRegistry
 
struct  MachineSchedPolicy
 
class  MachineSchedStrategy
 
class  ScheduleDAGMutation
 Mutate the DAG as a postpass after normal DAG building. More...
 
class  ScheduleDAGMI
 
class  ScheduleDAGMILive
 
class  ReadyQueue
 
struct  SchedRemainder
 Summarize the unscheduled region. More...
 
class  SchedBoundary
 
class  GenericSchedulerBase
 
class  GenericScheduler
 
class  PostGenericScheduler
 
class  SSAUpdaterTraits
 
class  MachineSSAUpdater
 
class  MachineTraceMetrics
 
class  MVT
 
class  MachORelocation
 
class  IdentifyingPassPtr
 
struct  isPodLike< IdentifyingPassPtr >
 
class  TargetPassConfig
 
class  PBQPRAConstraint
 Abstract base for classes implementing PBQP register allocation constraints (e.g. Spill-costs, interference, coalescing). More...
 
class  PBQPRAConstraintList
 PBQP register allocation constraint composer. More...
 
class  PseudoSourceValue
 
class  FixedStackPseudoSourceValue
 
class  RegisterRegAlloc
 
class  RegisterClassInfo
 
struct  RegisterPressure
 Base class for register pressure results. More...
 
struct  IntervalPressure
 
struct  RegionPressure
 
class  PressureChange
 
struct  isPodLike< PressureChange >
 
class  PressureDiff
 
class  PressureDiffs
 Array of PressureDiffs. More...
 
struct  RegPressureDelta
 
struct  LiveRegSet
 A set of live virtual registers and physical register units. More...
 
class  RegPressureTracker
 
class  RegScavenger
 
struct  resource_sort
 Sorting functions for the Available queue. More...
 
class  ResourcePriorityQueue
 
class  GraphWriter
 
class  SDep
 
struct  isPodLike< SDep >
 
class  SUnit
 SUnit - Scheduling unit. This is a node in the scheduling DAG. More...
 
class  SchedulingPriorityQueue
 
class  ScheduleDAG
 
class  SUnitIterator
 
struct  GraphTraits< SUnit * >
 
struct  GraphTraits< ScheduleDAG * >
 
class  ScheduleDAGTopologicalSort
 
struct  VReg2SUnit
 An individual mapping from virtual register number to SUnit. More...
 
struct  PhysRegSUOper
 
class  ScheduleDAGInstrs
 
struct  ILPValue
 Represent the ILP of the subDAG rooted at a DAG node. More...
 
class  SchedDFSResult
 Compute the values of each DAG node for various metrics during DFS. More...
 
class  ScheduleHazardRecognizer
 
class  RegisterScheduler
 
class  ScoreboardHazardRecognizer
 
class  SDVTListNode
 
struct  FoldingSetTrait< SDVTListNode >
 
struct  ilist_traits< SDNode >
 
class  SDDbgInfo
 
class  SelectionDAG
 
struct  GraphTraits< SelectionDAG * >
 
class  SelectionDAGISel
 
struct  SDVTList
 
class  SDValue
 
struct  DenseMapInfo< SDValue >
 
struct  isPodLike< SDValue >
 
struct  simplify_type< SDValue >
 
struct  simplify_type< const SDValue >
 
class  SDUse
 
struct  simplify_type< SDUse >
 
class  SDNode
 
class  SDLoc
 
class  UnarySDNode
 
class  BinarySDNode
 
class  BinaryWithFlagsSDNode
 
class  TernarySDNode
 
class  HandleSDNode
 
class  AddrSpaceCastSDNode
 
class  MemSDNode
 Abstact virtual class for operations for memory operations. More...
 
class  AtomicSDNode
 
class  MemIntrinsicSDNode
 
class  ShuffleVectorSDNode
 
class  ConstantSDNode
 
class  ConstantFPSDNode
 
class  GlobalAddressSDNode
 
class  FrameIndexSDNode
 
class  JumpTableSDNode
 
class  ConstantPoolSDNode
 
class  TargetIndexSDNode
 Completely target-dependent object reference. More...
 
class  BasicBlockSDNode
 
class  BuildVectorSDNode
 
class  SrcValueSDNode
 
class  MDNodeSDNode
 
class  RegisterSDNode
 
class  RegisterMaskSDNode
 
class  BlockAddressSDNode
 
class  EHLabelSDNode
 
class  ExternalSymbolSDNode
 
class  CondCodeSDNode
 
class  CvtRndSatSDNode
 
class  VTSDNode
 
class  LSBaseSDNode
 
class  LoadSDNode
 
class  StoreSDNode
 
class  MaskedLoadStoreSDNode
 
class  MaskedLoadSDNode
 
class  MaskedStoreSDNode
 
class  MachineSDNode
 
class  SDNodeIterator
 
struct  GraphTraits< SDNode * >
 
class  IndexListEntry
 
struct  ilist_traits< IndexListEntry >
 
class  SlotIndex
 SlotIndex - An opaque wrapper around machine indexes. More...
 
struct  isPodLike< SlotIndex >
 
struct  Idx2MBBCompare
 
class  SlotIndexes
 
struct  IntervalMapInfo< SlotIndex >
 
class  StackMapLiveness
 This pass calculates the liveness information for each basic block in a function and attaches the register live-out information to a patchpoint intrinsic if present. More...
 
class  PatchPointOpers
 MI-level patchpoint operands. More...
 
class  StatepointOpers
 
class  StackMaps
 
class  StackProtector
 
class  TargetLoweringObjectFileELF
 
class  TargetLoweringObjectFileMachO
 
class  TargetLoweringObjectFileCOFF
 
class  TargetSchedModel
 Provide an instruction scheduling machine model to CodeGen passes. More...
 
struct  EVT
 
class  VirtRegMap
 
struct  DILineInfo
 DILineInfo - a format-neutral container for source line information. More...
 
class  DIInliningInfo
 DIInliningInfo - a format-neutral container for inlined code description. More...
 
struct  DILineInfoSpecifier
 
class  DIContext
 
class  DWARFAbbreviationDeclaration
 
class  DWARFAcceleratorTable
 
class  DWARFCompileUnit
 
class  DWARFContext
 
class  DWARFContextInMemory
 
class  DWARFAbbreviationDeclarationSet
 
class  DWARFDebugAbbrev
 
class  DWARFDebugAranges
 
class  DWARFDebugArangeSet
 
class  DWARFDebugFrame
 A parsed .debug_frame section. More...
 
class  DWARFDebugInfoEntryMinimal
 DWARFDebugInfoEntryMinimal - A DIE with only the minimum required data. More...
 
struct  DWARFDebugInfoEntryInlinedChain
 
class  DWARFDebugLine
 
class  DWARFDebugLoc
 
class  DWARFDebugLocDWO
 
class  DWARFDebugRangeList
 
class  DWARFFormValue
 
struct  DWARFSection
 
class  DWARFTypeUnit
 
class  DWARFUnitSectionBase
 
class  DWARFUnitSection
 Concrete instance of DWARFUnitSection, specialized for one Unit type. More...
 
class  DWARFUnit
 
class  ExecutionEngineState
 Helper class for helping synchronize access to the global address map table. Access to this class should be serialized under a mutex. More...
 
class  ExecutionEngine
 Abstract interface for implementation execution of LLVM modules, designed to support both interpreter and just-in-time (JIT) compiler implementations. More...
 
class  EngineBuilder
 
struct  GenericValue
 
struct  JITEvent_EmittedFunctionDetails
 
class  JITEventListener
 
class  ObjectCache
 
class  OProfileWrapper
 
class  RTDyldMemoryManager
 
class  RuntimeDyld
 
class  RuntimeDyldChecker
 RuntimeDyld invariant checker for verifying that RuntimeDyld has correctly applied relocations. More...
 
class  SectionMemoryManager
 
class  SymbolTableListTraits
 
class  Argument
 LLVM Argument representation. More...
 
class  AssemblyAnnotationWriter
 
class  Attribute
 
class  AttributeSet
 
struct  DenseMapInfo< AttributeSet >
 
class  AttrBuilder
 
struct  ilist_traits< Instruction >
 
class  BasicBlock
 LLVM Basic Block Representation. More...
 
class  CallSiteBase
 
class  CallSite
 
class  ImmutableCallSite
 ImmutableCallSite - establish a view to a call site for examination. More...
 
class  PredIterator
 
class  SuccIterator
 
struct  isPodLike< SuccIterator< T, U > >
 
struct  GraphTraits< BasicBlock * >
 
struct  GraphTraits< const BasicBlock * >
 
struct  GraphTraits< Inverse< BasicBlock * > >
 
struct  GraphTraits< Inverse< const BasicBlock * > >
 
struct  GraphTraits< Function * >
 
struct  GraphTraits< const Function * >
 
struct  GraphTraits< Inverse< Function * > >
 
struct  GraphTraits< Inverse< const Function * > >
 
class  Comdat
 
class  Constant
 LLVM Constant Representation. More...
 
class  ConstantFolder
 ConstantFolder - Create constants with minimum, target independent, folding. More...
 
class  ConstantRange
 
struct  ConstantAggrKeyType
 
class  ConstantInt
 Class for constant integers. More...
 
class  ConstantFP
 
class  ConstantAggregateZero
 
class  ConstantArray
 
struct  OperandTraits< ConstantArray >
 
class  ConstantStruct
 
struct  OperandTraits< ConstantStruct >
 
class  ConstantVector
 
struct  OperandTraits< ConstantVector >
 
class  ConstantPointerNull
 
class  ConstantDataSequential
 
class  ConstantDataArray
 
class  ConstantDataVector
 
class  BlockAddress
 
struct  OperandTraits< BlockAddress >
 
class  ConstantExpr
 
struct  OperandTraits< ConstantExpr >
 
class  UndefValue
 
struct  LayoutAlignElem
 Layout alignment element. More...
 
struct  PointerAlignElem
 Layout pointer alignment element. More...
 
class  DataLayout
 A parsed version of the target data layout string in and methods for querying it. More...
 
class  DataLayoutPass
 
class  StructLayout
 
class  DIHeaderFieldIterator
 
class  DIDescriptor
 A thin wraper around MDNode to access encoded debug info. More...
 
class  DISubrange
 This is used to represent ranges, for array bounds. More...
 
class  DITypedArray
 This descriptor holds an array of nodes with type T. More...
 
class  DIEnumerator
 A wrapper for an enumerator (e.g. X and Y in 'enum {X,Y}'). More...
 
class  DIRef
 Represents reference to a DIDescriptor. More...
 
class  DIScope
 A base class for various scopes. More...
 
class  DIType
 
class  DIBasicType
 A basic type, like 'int' or 'float'. More...
 
class  DIDerivedType
 A simple derived type. More...
 
class  DICompositeType
 Types that refer to multiple other types. More...
 
class  DISubroutineType
 
class  DIFile
 This is a wrapper for a file. More...
 
class  DICompileUnit
 A wrapper for a compile unit. More...
 
class  DISubprogram
 This is a wrapper for a subprogram (e.g. a function). More...
 
class  DILexicalBlock
 This is a wrapper for a lexical block. More...
 
class  DILexicalBlockFile
 This is a wrapper for a lexical block with a filename change. More...
 
class  DINameSpace
 A wrapper for a C++ style name space. More...
 
class  DITemplateTypeParameter
 This is a wrapper for template type parameter. More...
 
class  DITemplateValueParameter
 This is a wrapper for template value parameter. More...
 
class  DIGlobalVariable
 This is a wrapper for a global variable. More...
 
class  DIVariable
 This is a wrapper for a variable (e.g. parameter, local, global etc). More...
 
class  DIExpression
 A complex location expression. More...
 
class  DILocation
 This object holds location information. More...
 
class  DIObjCProperty
 
class  DIImportedEntity
 An imported module (C++ using directive or similar). More...
 
class  DebugInfoFinder
 Utility to find all debug info in a module. More...
 
class  DebugLoc
 
class  IntegerType
 Integer representation type. More...
 
class  FunctionType
 
class  CompositeType
 
class  StructType
 
class  SequentialType
 
class  ArrayType
 
class  VectorType
 
class  PointerType
 
class  DiagnosticInfo
 This is the base abstract class for diagnostic reporting in the backend. The print method must be overloaded by the subclasses to print a user-friendly message in the client of the backend (let us call it a frontend). More...
 
class  DiagnosticInfoInlineAsm
 
class  DiagnosticInfoStackSize
 
class  DiagnosticInfoDebugMetadataVersion
 
class  DiagnosticInfoSampleProfile
 Diagnostic information for the sample profiler. More...
 
class  DiagnosticInfoOptimizationBase
 Common features for diagnostics dealing with optimization remarks. More...
 
class  DiagnosticInfoOptimizationRemark
 Diagnostic information for applied optimization remarks. More...
 
class  DiagnosticInfoOptimizationRemarkMissed
 Diagnostic information for missed-optimization remarks. More...
 
class  DiagnosticInfoOptimizationRemarkAnalysis
 Diagnostic information for optimization analysis remarks. More...
 
class  DiagnosticInfoOptimizationFailure
 Diagnostic information for optimization failures. More...
 
class  DiagnosticPrinter
 Interface for custom diagnostic printing. More...
 
class  DiagnosticPrinterRawOStream
 Basic diagnostic printer that uses an underlying raw_ostream. More...
 
class  DIBuilder
 
class  AnalysisManager
 A generic analysis pass manager with lazy running and caching of results. More...
 
class  BasicBlockEdge
 
class  DominatorTree
 Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree. More...
 
struct  GraphTraits< DomTreeNode * >
 
struct  GraphTraits< DominatorTree * >
 
class  DominatorTreeAnalysis
 Analysis pass which computes a DominatorTree. More...
 
class  DominatorTreePrinterPass
 Printer pass for the DominatorTree. More...
 
struct  DominatorTreeVerifierPass
 Verifier pass for the DominatorTree. More...
 
class  DominatorTreeWrapperPass
 Legacy analysis pass which computes a DominatorTree. More...
 
struct  ilist_traits< BasicBlock >
 
struct  ilist_traits< Argument >
 
class  Function
 
class  generic_gep_type_iterator
 
class  GlobalAlias
 
struct  OperandTraits< GlobalAlias >
 
class  GlobalObject
 
class  GlobalValue
 
class  GlobalVariable
 
struct  OperandTraits< GlobalVariable >
 
class  GVMaterializer
 
class  ConstantUniqueMap
 
class  InlineAsm
 
class  InstIterator
 
class  TerminatorInst
 
class  UnaryInstruction
 
struct  OperandTraits< UnaryInstruction >
 
class  BinaryOperator
 
struct  OperandTraits< BinaryOperator >
 
class  CastInst
 Base class of casting instructions. More...
 
class  CmpInst
 Abstract base class of comparison instructions. More...
 
struct  OperandTraits< CmpInst >
 
class  Instruction
 
class  PointerLikeTypeTraits< Instruction * >
 
class  AllocaInst
 
class  LoadInst
 
class  StoreInst
 
struct  OperandTraits< StoreInst >
 
class  FenceInst
 
class  AtomicCmpXchgInst
 
struct  OperandTraits< AtomicCmpXchgInst >
 
class  AtomicRMWInst
 
struct  OperandTraits< AtomicRMWInst >
 
class  GetElementPtrInst
 
struct  OperandTraits< GetElementPtrInst >
 
class  ICmpInst
 Represent an integer comparison operator. More...
 
class  FCmpInst
 Represents a floating point comparison operator. More...
 
class  CallInst
 
struct  OperandTraits< CallInst >
 
class  SelectInst
 
struct  OperandTraits< SelectInst >
 
class  VAArgInst
 
class  ExtractElementInst
 
struct  OperandTraits< ExtractElementInst >
 
class  InsertElementInst
 
struct  OperandTraits< InsertElementInst >
 
class  ShuffleVectorInst
 
struct  OperandTraits< ShuffleVectorInst >
 
class  ExtractValueInst
 
class  InsertValueInst
 
struct  OperandTraits< InsertValueInst >
 
class  PHINode
 
struct  OperandTraits< PHINode >
 
class  LandingPadInst
 
struct  OperandTraits< LandingPadInst >
 
class  ReturnInst
 
struct  OperandTraits< ReturnInst >
 
class  BranchInst
 
struct  OperandTraits< BranchInst >
 
class  SwitchInst
 
struct  OperandTraits< SwitchInst >
 
class  IndirectBrInst
 
struct  OperandTraits< IndirectBrInst >
 
class  InvokeInst
 
struct  OperandTraits< InvokeInst >
 
class  ResumeInst
 
struct  OperandTraits< ResumeInst >
 
class  UnreachableInst
 
class  TruncInst
 This class represents a truncation of integer types. More...
 
class  ZExtInst
 This class represents zero extension of integer types. More...
 
class  SExtInst
 This class represents a sign extension of integer types. More...
 
class  FPTruncInst
 This class represents a truncation of floating point types. More...
 
class  FPExtInst
 This class represents an extension of floating point types. More...
 
class  UIToFPInst
 This class represents a cast unsigned integer to floating point. More...
 
class  SIToFPInst
 This class represents a cast from signed integer to floating point. More...
 
class  FPToUIInst
 This class represents a cast from floating point to unsigned integer. More...
 
class  FPToSIInst
 This class represents a cast from floating point to signed integer. More...
 
class  IntToPtrInst
 This class represents a cast from an integer to a pointer. More...
 
class  PtrToIntInst
 This class represents a cast from a pointer to an integer. More...
 
class  BitCastInst
 This class represents a no-op cast from one type to another. More...
 
class  AddrSpaceCastInst
 This class represents a conversion between pointers from one address space to another. More...
 
class  InstVisitor
 Base class for instruction visitors. More...
 
class  IntrinsicInst
 
class  DbgInfoIntrinsic
 
class  DbgDeclareInst
 
class  DbgValueInst
 
class  MemIntrinsic
 
class  MemSetInst
 
class  MemTransferInst
 
class  MemCpyInst
 
class  MemMoveInst
 
class  VAStartInst
 
class  VAEndInst
 
class  VACopyInst
 
class  InstrProfIncrementInst
 This represents the llvm.instrprof_increment intrinsic. More...
 
class  IRBuilderDefaultInserter
 This provides the default implementation of the IRBuilder 'InsertHelper' method that is called whenever an instruction is created by IRBuilder and needs to be inserted. More...
 
class  IRBuilderBase
 Common base class shared among various IRBuilders. More...
 
class  IRBuilder
 This provides a uniform API for creating instructions and inserting them into a basic block: either at the end of a BasicBlock, or at a specific iterator location in a block. More...
 
class  PrintModulePass
 Pass for printing a Module as LLVM's text IR assembly. More...
 
class  PrintFunctionPass
 Pass for printing a Function as LLVM's text IR assembly. More...
 
class  PassManagerPrettyStackEntry
 
class  PMStack
 
class  PMTopLevelManager
 
class  PMDataManager
 
class  FPPassManager
 
class  PassNameParser
 
class  FilteredPassNameParser
 
class  PassArgFilter
 
class  LLVMContext
 
class  Mangler
 
class  MDBuilder
 
class  Metadata
 Root of the metadata hierarchy. More...
 
class  MetadataAsValue
 Metadata wrapper in the Value hierarchy. More...
 
class  ReplaceableMetadataImpl
 Shared implementation of use-lists for replaceable metadata. More...
 
class  ValueAsMetadata
 Value wrapper in the Metadata hierarchy. More...
 
class  ConstantAsMetadata
 
class  LocalAsMetadata
 
class  MDString
 A single uniqued string. More...
 
struct  AAMDNodes
 A collection of metadata nodes that might be associated with a memory access used by the alias-analysis infrastructure. More...
 
struct  DenseMapInfo< AAMDNodes >
 
class  MDOperand
 Tracking metadata reference owned by Metadata. More...
 
struct  simplify_type< MDOperand >
 
struct  simplify_type< const MDOperand >
 
class  MDNode
 Tuple of metadata. More...
 
class  UniquableMDNode
 Uniquable metadata node. More...
 
class  MDTuple
 Tuple of metadata. More...
 
class  MDLocation
 Debug location. More...
 
class  MDNodeFwdDecl
 Forward declaration of metadata. More...
 
class  NamedMDNode
 A tuple of MDNodes. More...
 
class  MetadataTracking
 API for tracking metadata references through RAUW and deletion. More...
 
struct  ilist_traits< Function >
 
struct  ilist_traits< GlobalVariable >
 
struct  ilist_traits< GlobalAlias >
 
struct  ilist_traits< NamedMDNode >
 
class  Module
 The main container class for the LLVM Intermediate Representation. More...
 
class  NoFolder
 NoFolder - Create "constants" (actually, instructions) with no folding. More...
 
struct  FixedNumOperandTraits
 
struct  OptionalOperandTraits
 
struct  VariadicOperandTraits
 
struct  HungoffOperandTraits
 
class  Operator
 
class  OverflowingBinaryOperator
 
class  PossiblyExactOperator
 
class  FastMathFlags
 Convenience struct for specifying and reasoning about fast-math flags. More...
 
class  FPMathOperator
 
class  ConcreteOperator
 A helper template for defining operators for individual opcodes. More...
 
class  AddOperator
 
class  SubOperator
 
class  MulOperator
 
class  ShlOperator
 
class  SDivOperator
 
class  UDivOperator
 
class  AShrOperator
 
class  LShrOperator
 
class  ZExtOperator
 
class  GEPOperator
 
class  PtrToIntOperator
 
class  PreservedAnalyses
 An abstract set of preserved analyses following a transformation pass run. More...
 
class  PassManager
 Manages a sequence of passes over units of IR. More...
 
class  FunctionAnalysisManagerModuleProxy
 A module analysis which acts as a proxy for a function analysis manager. More...
 
class  ModuleAnalysisManagerFunctionProxy
 A function analysis which acts as a proxy for a module analysis manager. More...
 
class  ModuleToFunctionPassAdaptor
 Trivial adaptor that maps from a module to its functions. More...
 
struct  RequireAnalysisPass
 A template utility pass to force an analysis result to be available. More...
 
struct  InvalidateAnalysisPass
 A template utility pass to force an analysis result to be invalidated. More...
 
struct  InvalidateAllAnalysesPass
 A utility pass that does nothing but preserves no analyses. More...
 
class  PredIteratorCache
 
class  StatepointBase
 
class  ImmutableStatepoint
 
class  Statepoint
 
class  GCRelocateOperands
 
class  TrackingMDRef
 Tracking metadata reference. More...
 
class  TypedTrackingMDRef
 Typed tracking ref. More...
 
struct  simplify_type< TrackingMDRef >
 
struct  simplify_type< const TrackingMDRef >
 
struct  simplify_type< TypedTrackingMDRef< T > >
 
struct  simplify_type< const TypedTrackingMDRef< T > >
 
class  Type
 
struct  isa_impl< PointerType, Type >
 
struct  GraphTraits< Type * >
 
struct  GraphTraits< const Type * >
 
class  TypeBuilder
 
class  TypeBuilder< const T, cross >
 
class  TypeBuilder< volatile T, cross >
 
class  TypeBuilder< const volatile T, cross >
 
class  TypeBuilder< T *, cross >
 
class  TypeBuilder< T &, cross >
 There is no support for references. More...
 
class  TypeBuilder< T[N], cross >
 
class  TypeBuilder< T[], cross >
 LLVM uses an array of length 0 to represent an unknown-length array. More...
 
class  TypeBuilder< types::i< num_bits >, cross >
 
class  TypeBuilder< float, false >
 
class  TypeBuilder< float, true >
 
class  TypeBuilder< double, false >
 
class  TypeBuilder< double, true >
 
class  TypeBuilder< types::ieee_float, cross >
 
class  TypeBuilder< types::ieee_double, cross >
 
class  TypeBuilder< types::x86_fp80, cross >
 
class  TypeBuilder< types::fp128, cross >
 
class  TypeBuilder< types::ppc_fp128, cross >
 
class  TypeBuilder< types::x86_mmx, cross >
 
class  TypeBuilder< void, cross >
 
class  TypeBuilder< void *, false >
 
class  TypeBuilder< const void *, false >
 
class  TypeBuilder< volatile void *, false >
 
class  TypeBuilder< const volatile void *, false >
 
class  TypeBuilder< R(A1), cross >
 
class  TypeBuilder< R(A1, A2), cross >
 
class  TypeBuilder< R(A1, A2, A3), cross >
 
class  TypeBuilder< R(A1, A2, A3, A4), cross >
 
class  TypeBuilder< R(A1, A2, A3, A4, A5), cross >
 
class  TypeBuilder< R(...), cross >
 
class  TypeBuilder< R(A1,...), cross >
 
class  TypeBuilder< R(A1, A2,...), cross >
 
class  TypeBuilder< R(A1, A2, A3,...), cross >
 
class  TypeBuilder< R(A1, A2, A3, A4,...), cross >
 
class  TypeBuilder< R(A1, A2, A3, A4, A5,...), cross >
 
class  TypeFinder
 
class  PointerLikeTypeTraits< Use ** >
 
class  Use
 A Use represents the edge between a Value definition and its users. More...
 
struct  simplify_type< Use >
 Allow clients to treat uses just like values when using casting operators. More...
 
struct  simplify_type< const Use >
 
struct  UseListOrder
 Structure to hold a use-list order. More...
 
struct  OperandTraits
 Compile-time customization of User operands. More...
 
class  User
 
struct  simplify_type< User::op_iterator >
 
struct  simplify_type< User::const_op_iterator >
 
class  Value
 LLVM Value Representation. More...
 
struct  isa_impl< Constant, Value >
 
struct  isa_impl< Argument, Value >
 
struct  isa_impl< InlineAsm, Value >
 
struct  isa_impl< Instruction, Value >
 
struct  isa_impl< BasicBlock, Value >
 
struct  isa_impl< Function, Value >
 
struct  isa_impl< GlobalVariable, Value >
 
struct  isa_impl< GlobalAlias, Value >
 
struct  isa_impl< GlobalValue, Value >
 
struct  isa_impl< GlobalObject, Value >
 
class  PointerLikeTypeTraits< Value * >
 
class  PointerLikeTypeTraits< ValueHandleBase ** >
 
class  ValueHandleBase
 This is the common base class of value handles. More...
 
class  WeakVH
 Value handle that is nullable, but tries to track the Value. More...
 
struct  simplify_type< WeakVH >
 
class  AssertingVH
 Value handle that asserts if the Value is deleted. More...
 
struct  DenseMapInfo< AssertingVH< T > >
 
struct  isPodLike< AssertingVH< T > >
 
class  TrackingVH
 Value handle that tracks a Value across RAUW. More...
 
class  CallbackVH
 Value handle with callbacks on RAUW and destruction. More...
 
class  ValueMapCallbackVH
 
class  ValueMapIterator
 
class  ValueMapConstIterator
 
struct  ValueMapConfig
 
class  ValueMap
 See the file comment. More...
 
struct  DenseMapInfo< ValueMapCallbackVH< KeyT, ValueT, Config > >
 
class  ValueSymbolTable
 
class  VerifierPass
 
class  LineEditor
 
class  Linker
 
struct  LTOCodeGenerator
 
struct  LTOModule
 
struct  ConstantPoolEntry
 
class  ConstantPool
 
class  AssemblerConstantPools
 
class  MachineLocation
 
class  MCAsmBackend
 MCAsmBackend - Generic interface to target specific assembler backends. More...
 
class  MCAsmInfo
 
class  MCAsmInfoCOFF
 
class  MCAsmInfoMicrosoft
 
class  MCAsmInfoGNUCOFF
 
class  MCAsmInfoDarwin
 
class  MCAsmInfoELF
 
class  MCAsmLayout
 
class  MCFragment
 
class  MCEncodedFragment
 
class  MCEncodedFragmentWithFixups
 
class  MCDataFragment
 
class  MCCompactEncodedInstFragment
 
class  MCRelaxableFragment
 
class  MCAlignFragment
 
class  MCFillFragment
 
class  MCOrgFragment
 
class  MCLEBFragment
 
class  MCDwarfLineAddrFragment
 
class  MCDwarfCallFrameFragment
 
class  MCSectionData
 
class  MCSymbolData
 
struct  IndirectSymbolData
 
struct  DataRegionData
 
class  MCAssembler
 
class  MCCodeEmitter
 MCCodeEmitter - Generic instruction encoding interface. More...
 
class  MCCodeGenInfo
 
class  MCContext
 
class  MCDisassembler
 
struct  MCDwarfFile
 
class  MCDwarfLoc
 
class  MCLineEntry
 
class  MCLineSection
 
struct  MCDwarfLineTableHeader
 
class  MCDwarfDwoLineTable
 
class  MCDwarfLineTable
 
class  MCDwarfLineAddr
 
class  MCGenDwarfInfo
 
class  MCGenDwarfLabelEntry
 
class  MCCFIInstruction
 
struct  MCDwarfFrameInfo
 
class  MCDwarfFrameEmitter
 
class  MCELF
 
class  MCELFObjectTargetWriter
 
class  MCELFStreamer
 
class  MCExpr
 
class  MCConstantExpr
 
class  MCSymbolRefExpr
 
class  MCUnaryExpr
 MCUnaryExpr - Unary assembler expressions. More...
 
class  MCBinaryExpr
 MCBinaryExpr - Binary assembler expressions. More...
 
class  MCTargetExpr
 
class  MCExternalSymbolizer
 Symbolize using user-provided, C API, callbacks. More...
 
class  MCFixup
 
struct  MCFixupKindInfo
 MCFixupKindInfo - Target independent information on a fixup kind. More...
 
class  MCOperand
 
struct  isPodLike< MCOperand >
 
class  MCInst
 
class  MCInstBuilder
 
class  MCInstPrinter
 
class  MCInstrAnalysis
 
class  MCOperandInfo
 
class  MCInstrDesc
 
class  MCInstrInfo
 
struct  InstrStage
 
struct  InstrItinerary
 
class  InstrItineraryData
 
class  MCLabel
 
class  MCLOHDirective
 Store Linker Optimization Hint information (LOH). More...
 
class  MCLOHContainer
 
class  MCMachObjectTargetWriter
 
class  MachObjectWriter
 
class  MCObjectFileInfo
 
class  MCObjectStreamer
 Streaming object file generation interface. More...
 
class  MCObjectWriter
 
class  AsmCond
 
class  AsmLexer
 AsmLexer - Lexer class for assembly files. More...
 
class  AsmToken
 Target independent representation for an assembler token. More...
 
class  MCAsmLexer
 
class  InlineAsmIdentifierInfo
 
class  MCAsmParserSemaCallback
 Generic Sema callback for assembly parser. More...
 
class  MCAsmParser
 
class  MCAsmParserExtension
 Generic interface for extending the MCAsmParser, which is implemented by target and object file assembly parser implementations. More...
 
class  MCParsedAsmOperand
 
class  MCRegisterClass
 MCRegisterClass - Base class of TargetRegisterClass. More...
 
struct  MCRegisterDesc
 
class  MCRegisterInfo
 
class  MCSubRegIterator
 
class  MCSubRegIndexIterator
 
class  MCSuperRegIterator
 
class  MCRegUnitIterator
 
class  MCRegUnitMaskIterator
 
class  MCRegUnitRootIterator
 MCRegUnitRootIterator enumerates the root registers of a register unit. More...
 
class  MCRegAliasIterator
 
class  MCRelocationInfo
 Create MCExprs from relocations found in an object file. More...
 
struct  MCProcResourceDesc
 Define a kind of processor resource that will be modeled by the scheduler. More...
 
struct  MCWriteProcResEntry
 
struct  MCWriteLatencyEntry
 
struct  MCReadAdvanceEntry
 
struct  MCSchedClassDesc
 
struct  MCSchedModel
 
class  MCSection
 
class  MCSectionCOFF
 MCSectionCOFF - This represents a section on Windows. More...
 
class  MCSectionELF
 
class  MCSectionMachO
 
class  MCTargetStreamer
 
class  AArch64TargetStreamer
 
class  ARMTargetStreamer
 
class  MCStreamer
 
class  MCSubtargetInfo
 
class  MCSymbol
 
class  MCSymbolizer
 Symbolize and annotate disassembled instructions. More...
 
struct  AsmRewrite
 
struct  ParseInstructionInfo
 
class  MCTargetAsmParser
 MCTargetAsmParser - Generic interface to target specific assembly parsers. More...
 
class  MCTargetOptions
 
class  MCValue
 
class  MCWinCOFFObjectTargetWriter
 
class  MCWinCOFFStreamer
 
class  SectionKind
 
class  StringTableBuilder
 Utility for building string tables with deduplicated suffixes. More...
 
struct  SubtargetFeatureKV
 
struct  SubtargetInfoKV
 
class  SubtargetFeatures
 
class  Pass
 
class  ModulePass
 
class  ImmutablePass
 
class  FunctionPass
 
class  BasicBlockPass
 
class  AnalysisUsage
 
class  AnalysisResolver
 
class  PassInfo
 
class  PassRegistry
 
struct  RegisterPass
 
class  RegisterAGBase
 
struct  RegisterAnalysisGroup
 
struct  PassRegistrationListener
 
struct  DenseMapInfo< coverage::CounterExpression >
 Provide DenseMapInfo for CounterExpression. More...
 
struct  InstrProfRecord
 Profiling information for a single function. More...
 
class  InstrProfIterator
 A file format agnostic iterator over profiling data. More...
 
class  InstrProfReader
 
class  TextInstrProfReader
 
class  RawInstrProfReader
 
class  InstrProfLookupTrait
 
class  IndexedInstrProfReader
 Reader for the indexed binary instrprof format. More...
 
class  InstrProfWriter
 Writer for instrumentation based profile data. More...
 
struct  DenseMapInfo< sampleprof::LineLocation >
 
struct  AlignmentCalcImpl
 
struct  AlignOf
 
struct  AlignedCharArrayUnion
 This union template exposes a suitably aligned and sized character array member which can hold elements of any of up to four types. More...
 
class  AllocatorBase
 CRTP base class providing obvious overloads for the core Allocate() methods of LLVM-style allocators. More...
 
class  MallocAllocator
 
class  BumpPtrAllocatorImpl
 Allocate memory in an ever growing pool, as if by bump-pointer. More...
 
class  SpecificBumpPtrAllocator
 A BumpPtrAllocator that allows only elements of a specific type to be allocated. More...
 
class  ArrayRecycler
 
class  BlockFrequency
 
class  BranchProbability
 
struct  simplify_type< const From >
 
struct  isa_impl
 
struct  isa_impl< To, From, typename std::enable_if< std::is_base_of< To, From >::value >::type >
 Always allow upcasts, and perform no dynamic check for them. More...
 
struct  isa_impl_cl
 
struct  isa_impl_cl< To, const From >
 
struct  isa_impl_cl< To, From * >
 
struct  isa_impl_cl< To, From *const >
 
struct  isa_impl_cl< To, const From * >
 
struct  isa_impl_cl< To, const From *const >
 
struct  isa_impl_wrap
 
struct  isa_impl_wrap< To, FromTy, FromTy >
 
struct  cast_retty
 
struct  cast_retty_impl
 
struct  cast_retty_impl< To, const From >
 
struct  cast_retty_impl< To, From * >
 
struct  cast_retty_impl< To, const From * >
 
struct  cast_retty_impl< To, const From *const >
 
struct  cast_retty_wrap
 
struct  cast_retty_wrap< To, FromTy, FromTy >
 
struct  cast_convert_val
 
struct  cast_convert_val< To, FromTy, FromTy >
 
struct  is_simple_type
 
class  circular_raw_ostream
 
class  CrashRecoveryContext
 Crash recovery helper object. More...
 
class  CrashRecoveryContextCleanup
 
class  CrashRecoveryContextCleanupBase
 
class  CrashRecoveryContextDestructorCleanup
 
class  CrashRecoveryContextDeleteCleanup
 
class  CrashRecoveryContextReleaseRefCleanup
 
class  CrashRecoveryContextCleanupRegistrar
 
class  DataExtractor
 
class  DataStreamer
 
struct  DefaultDOTGraphTraits
 
struct  DOTGraphTraits
 
struct  ScopedFatalErrorHandler
 
class  ReferenceStorage
 Stores a reference that can be changed. More...
 
class  ErrorOr
 Represents either an error or a value T. More...
 
class  FileOutputBuffer
 
class  FileRemover
 
class  format_object_base
 
class  format_object1
 
class  format_object2
 
class  format_object3
 
class  format_object4
 
class  format_object5
 
class  format_object6
 
class  FormattedString
 This is a helper class used for left_justify() and right_justify(). More...
 
class  FormattedNumber
 This is a helper class used for format_hex() and format_decimal(). More...
 
class  formatted_raw_ostream
 
struct  GCOVOptions
 GCOVOptions - A struct for passing gcov options between functions. More...
 
class  GCOVBuffer
 
class  GCOVFile
 
struct  GCOVEdge
 GCOVEdge - Collects edge information. More...
 
class  GCOVFunction
 GCOVFunction - Collects function information. More...
 
class  GCOVBlock
 GCOVBlock - Collects block information. More...
 
class  FileInfo
 
class  DominatorBase
 Base class that other, more interesting dominator analyses inherit from. More...
 
class  DomTreeNodeBase
 Base class for the actual dominator tree node. More...
 
class  line_iterator
 A forward iterator which reads text lines from a buffer. More...
 
class  LockFileManager
 Class that manages the creation of a lock file to aid implicit coordination between different processes. More...
 
struct  object_deleter
 
struct  object_deleter< T[N]>
 
class  ManagedStaticBase
 ManagedStaticBase - Common base class for ManagedStatic instances. More...
 
class  ManagedStatic
 
struct  llvm_shutdown_obj
 
class  MD5
 
class  MemoryBuffer
 
class  MemoryBufferRef
 
class  MemoryObject
 
class  MutexGuard
 Guard a section of code with a Mutex. More...
 
class  OnDiskChainedHashTableGenerator
 Generates an on disk hash table. More...
 
class  OnDiskChainedHashTable
 Provides lookup on an on disk hash table. More...
 
class  OnDiskIterableChainedHashTable
 Provides lookup and iteration over an on disk hash table. More...
 
class  OptionRegistry
 Singleton class used to register debug options. More...
 
class  OutputBuffer
 
struct  PluginLoader
 
class  PointerLikeTypeTraits
 
class  PointerLikeTypeTraits< T * >
 
class  PointerLikeTypeTraits< const T * >
 
class  PointerLikeTypeTraits< uintptr_t >
 
class  PrettyStackTraceEntry
 
class  PrettyStackTraceString
 
class  PrettyStackTraceProgram
 
class  RandomNumberGenerator
 
class  raw_os_ostream
 
class  raw_ostream
 
class  raw_fd_ostream
 
class  raw_string_ostream
 
class  raw_svector_ostream
 
class  raw_null_ostream
 raw_null_ostream - A raw_ostream that discards all output. More...
 
struct  RecyclerStruct
 
struct  ilist_traits< RecyclerStruct >
 
class  Recycler
 
class  RecyclingAllocator
 
class  Regex
 
class  SimpleRegistryEntry
 
class  RegistryTraits
 
class  Registry
 
class  RegistryParser
 
struct  SaveAndRestore
 A utility class that uses RAII to save and restore the value of a variable. More...
 
struct  SaveOr
 
class  ScaledNumberBase
 
class  ScaledNumber
 Simple representation of a scaled number. More...
 
struct  isPodLike< ScaledNumber< T > >
 
class  SMLoc
 Represents a location in source code. More...
 
class  SMRange
 
class  SourceMgr
 
class  SMFixIt
 Represents a single fixit, a replacement of one range of text with another. More...
 
class  SMDiagnostic
 
class  SpecialCaseList
 
class  StreamingMemoryObject
 
class  StringPool
 
class  PooledStringPtr
 
class  Target
 
struct  TargetRegistry
 TargetRegistry - Generic interface to target specific features. More...
 
struct  RegisterTarget
 
struct  RegisterMCAsmInfo
 
struct  RegisterMCAsmInfoFn
 
struct  RegisterMCCodeGenInfo
 
struct  RegisterMCCodeGenInfoFn
 
struct  RegisterMCInstrInfo
 
struct  RegisterMCInstrInfoFn
 
struct  RegisterMCInstrAnalysis
 
struct  RegisterMCInstrAnalysisFn
 
struct  RegisterMCRegInfo
 
struct  RegisterMCRegInfoFn
 
struct  RegisterMCSubtargetInfo
 
struct  RegisterMCSubtargetInfoFn
 
struct  RegisterTargetMachine
 
struct  RegisterMCAsmBackend
 
struct  RegisterMCAsmParser
 
struct  RegisterAsmPrinter
 
struct  RegisterMCCodeEmitter
 
class  TimeRecord
 
class  Timer
 
class  TimeRegion
 
struct  NamedRegionTimer
 
class  TimerGroup
 
class  tool_output_file
 
struct  isPodLike< std::pair< T, U > >
 
class  is_integral_or_enum
 Metafunction that determines whether the given type is either an integral type or an enumeration type. More...
 
struct  add_lvalue_reference_if_not_pointer
 If T is a pointer, just return it. If it is not, return T&. More...
 
struct  add_lvalue_reference_if_not_pointer< T, typename std::enable_if< std::is_pointer< T >::value >::type >
 
struct  add_const_past_pointer
 If T is a pointer to X, return a pointer to const X. If it is not, return const T. More...
 
struct  add_const_past_pointer< T, typename std::enable_if< std::is_pointer< T >::value >::type >
 
class  unique_lock
 Guard a section of code with a mutex. More...
 
class  RecTy
 
class  BitRecTy
 
class  BitsRecTy
 
class  IntRecTy
 
class  StringRecTy
 
class  ListRecTy
 
class  DagRecTy
 
class  RecordRecTy
 
class  Init
 
class  TypedInit
 
class  UnsetInit
 
class  BitInit
 
class  BitsInit
 
class  IntInit
 
class  StringInit
 
class  ListInit
 
class  OpInit
 
class  UnOpInit
 
class  BinOpInit
 
class  TernOpInit
 
class  VarInit
 
class  VarBitInit
 
class  VarListElementInit
 
class  DefInit
 
class  FieldInit
 
class  DagInit
 
class  RecordVal
 
class  Record
 
struct  MultiClass
 
class  RecordKeeper
 
struct  LessRecord
 
struct  LessRecordByID
 
struct  LessRecordFieldName
 
struct  LessRecordRegister
 
class  SetTheory
 
class  StringMatcher
 
class  StringToOffsetTable
 
struct  CostTblEntry
 Cost Table Entry. More...
 
struct  TypeConversionCostTblEntry
 Type Conversion Cost Table. More...
 
class  TargetFrameLowering
 
class  TargetInstrInfo
 
class  TargetIntrinsicInfo
 
class  TargetLibraryInfo
 
class  TargetLoweringBase
 
class  TargetLowering
 
class  TargetLoweringObjectFile
 
class  TargetMachine
 
class  LLVMTargetMachine
 
class  TargetOptions
 
class  TargetRegisterClass
 
struct  TargetRegisterInfoDesc
 
struct  RegClassWeight
 
class  TargetRegisterInfo
 
class  SuperRegClassIterator
 
struct  VirtReg2IndexFunctor
 
class  PrintReg
 
class  PrintRegUnit
 
class  PrintVRegOrUnit
 
class  TargetSelectionDAGInfo
 
class  TargetSubtargetInfo
 
struct  InstrProfOptions
 Options for the frontend instrumentation based profiling pass. More...
 
struct  Inliner
 
class  PassManagerBuilder
 
struct  RegisterStandardPasses
 
struct  ASanStackVariableDescription
 
struct  ASanStackFrameLayout
 
struct  ClonedCodeInfo
 
class  InlineFunctionInfo
 
class  CodeExtractor
 Utility class for extracting code into a new function. More...
 
struct  GlobalStatus
 
class  IVVisitor
 
class  FortifiedLibCallSimplifier
 This class implements simplifications for calls to fortified library functions (__st*cpy_chk, __memcpy_chk, __memmove_chk, __memset_chk), to, when possible, replace them with their non-checking counterparts. Other optimizations can also be done, but it's possible to disable them and only simplify needless use of the checking versions (when the object size is unknown) by passing true for OnlyLowerUnknownSize. More...
 
class  LibCallSimplifier
 
class  SSAUpdater
 Helper class for SSA formation on a set of values defined in multiple blocks. More...
 
class  LoadAndStorePromoter
 Helper class for promoting a collection of loads and stores into SSA Form using the SSAUpdater. More...
 
class  SSAUpdaterImpl
 
struct  ilist_traits< SymbolRewriter::RewriteDescriptor >
 
struct  UnifyFunctionExitNodes
 
class  ValueMapTypeRemapper
 
class  ValueMaterializer
 
struct  VectorizeConfig
 Vectorize configuration. More...
 
struct  GraphTraits< BlockFrequencyInfo * >
 
struct  DOTGraphTraits< BlockFrequencyInfo * >
 
struct  GraphTraits< IrreducibleGraph >
 
struct  DOTGraphTraits< DomTreeNode * >
 
struct  DOTGraphTraits< DominatorTree * >
 
struct  DOTGraphTraits< PostDominatorTree * >
 
struct  DOTGraphTraits< CallGraph * >
 
struct  AnalysisCallGraphWrapperPassTraits
 
struct  DOTGraphTraits< RegionNode * >
 
struct  DOTGraphTraits< RegionInfoPass * >
 
struct  StratifiedInfo
 
struct  StratifiedLink
 
class  StratifiedSets
 
class  StratifiedSetsBuilder
 
class  LLLexer
 
struct  ValID
 
struct  MDFieldImpl
 Structure to represent an optional metadata field. More...
 
struct  MDUnsignedField
 
struct  MDField
 
class  LLParser
 
struct  OperandTraits< ConstantPlaceHolder >
 
class  BitcodeReaderValueList
 
class  BitcodeReaderMDValueList
 
class  BitcodeReader
 
class  ValueEnumerator
 
class  AggressiveAntiDepState
 Contains all the state necessary for anti-dep breaking. More...
 
class  AggressiveAntiDepBreaker
 
class  AllocationOrder
 
class  AntiDepBreaker
 
class  AddressPool
 
class  AsmPrinterHandler
 Collects and handles AsmPrinter objects required to build debug or EH information. More...
 
class  ByteStreamer
 
class  APByteStreamer
 
class  HashingByteStreamer
 
class  DbgValueHistoryMap
 
class  DebugLocEntry
 This struct describes location entries emitted in the .debug_loc section. More...
 
struct  DebugLocList
 
class  DIEHash
 An object containing the capability of hashing and adding hash attributes onto a DIE. More...
 
class  DwarfAccelTable
 
class  DwarfCompileUnit
 
class  SrcLineInfo
 This class is used to record source line correspondence. More...
 
class  DbgVariable
 This class is used to track local variable information. More...
 
struct  SymbolCU
 Helper used to pair up a symbol and its DWARF compile unit. More...
 
class  DwarfDebug
 Collects and handles dwarf debug information. More...
 
class  DwarfCFIException
 
class  ARMException
 
class  DwarfExpression
 
class  DebugLocDwarfExpression
 DwarfExpression implementation for .debug_loc entries. More...
 
class  DIEDwarfExpression
 DwarfExpression implementation for singular DW_AT_location. More...
 
class  DwarfFile
 
class  DwarfStringPool
 
class  RangeSpan
 
class  RangeSpanList
 
class  DwarfUnit
 
class  DwarfTypeUnit
 
class  EHStreamer
 Emits exception handling directives. More...
 
class  Win64Exception
 
class  WinCodeViewLineTables
 Collects and handles line tables information in a CodeView format. More...
 
class  BranchFolder
 
class  CriticalAntiDepBreaker
 
class  DefaultVLIWScheduler
 
class  InterferenceCache
 
class  LiveDebugVariables
 
class  LiveRangeCalc
 
struct  GraphTraits< MachineBlockFrequencyInfo * >
 
struct  DOTGraphTraits< MachineBlockFrequencyInfo * >
 
struct  DOTGraphTraits< const MachineFunction * >
 
class  MMIAddrLabelMapCallbackPtr
 
class  MMIAddrLabelMap
 
struct  GraphTraits< ScheduleDAGMI * >
 
struct  DOTGraphTraits< ScheduleDAGMI * >
 
class  SSAUpdaterTraits< MachineSSAUpdater >
 
class  po_iterator_storage< LoopBounds, true >
 
class  PassConfigImpl
 
class  PEI
 
class  RegAllocBase
 
class  CoalescerPair
 
class  SchedDFSImpl
 Internal state used to compute SchedDFSResult. More...
 
struct  DOTGraphTraits< ScheduleDAG * >
 
class  InstrEmitter
 
class  DAGTypeLegalizer
 
class  ScheduleDAGSDNodes
 
class  SDDbgValue
 
class  SelectionDAGBuilder
 
class  OptLevelChanger
 This class is used by SelectionDAGISel to temporarily override the optimization level on a per-function basis. More...
 
struct  DOTGraphTraits< SelectionDAG * >
 
class  StatepointLoweringState
 
class  Spiller
 
class  SpillPlacement
 
class  SplitAnalysis
 
class  SplitEditor
 
class  FrameEntry
 Abstract frame entry defining the common interface concrete entries implement. More...
 
class  IntelJITEventsWrapper
 
class  AllocaHolder
 
struct  ExecutionContext
 
class  Interpreter
 
class  LinkingMemoryManager
 
class  MCJIT
 
class  ObjectMemoryBuffer
 
class  RuntimeDyldCheckerExprEval
 
class  RuntimeDyldCheckerImpl
 
class  RuntimeDyldELF
 
class  SectionEntry
 
class  RelocationEntry
 
class  RelocationValueRef
 
class  RuntimeDyldImpl
 
class  RuntimeDyldMachO
 
class  RuntimeDyldMachOCRTPBase
 
class  RuntimeDyldMachOAArch64
 
class  RuntimeDyldMachOARM
 
class  RuntimeDyldMachOI386
 
class  RuntimeDyldMachOX86_64
 
class  SlotTracker
 
class  TypePrinting
 
class  AssemblyWriter
 
class  AttributeImpl
 
class  EnumAttributeImpl
 
class  IntAttributeImpl
 
class  StringAttributeImpl
 
class  AttributeSetNode
 
class  AttributeSetImpl
 
class  UnaryConstantExpr
 
class  BinaryConstantExpr
 
class  SelectConstantExpr
 
class  ExtractElementConstantExpr
 
class  InsertElementConstantExpr
 
class  ShuffleVectorConstantExpr
 
class  ExtractValueConstantExpr
 
class  InsertValueConstantExpr
 
class  GetElementPtrConstantExpr
 
class  CompareConstantExpr
 
struct  OperandTraits< UnaryConstantExpr >
 
struct  OperandTraits< BinaryConstantExpr >
 
struct  OperandTraits< SelectConstantExpr >
 
struct  OperandTraits< ExtractElementConstantExpr >
 
struct  OperandTraits< InsertElementConstantExpr >
 
struct  OperandTraits< ShuffleVectorConstantExpr >
 
struct  OperandTraits< ExtractValueConstantExpr >
 
struct  OperandTraits< InsertValueConstantExpr >
 
struct  OperandTraits< GetElementPtrConstantExpr >
 
struct  OperandTraits< CompareConstantExpr >
 
struct  ConstantInfo
 
struct  ConstantInfo< ConstantExpr >
 
struct  ConstantInfo< InlineAsm >
 
struct  ConstantInfo< ConstantArray >
 
struct  ConstantInfo< ConstantStruct >
 
struct  ConstantInfo< ConstantVector >
 
struct  InlineAsmKeyType
 
struct  ConstantExprKeyType
 
struct  PrinterTrait
 
struct  PrinterTrait< Value >
 
struct  PrinterTrait< Metadata >
 
struct  LeakDetectorImpl
 
struct  DenseMapAPIntKeyInfo
 
struct  DenseMapAPFloatKeyInfo
 
struct  AnonStructTypeKeyInfo
 
struct  FunctionTypeKeyInfo
 
struct  MDTupleInfo
 DenseMapInfo for MDTuple. More...
 
struct  MDLocationInfo
 DenseMapInfo for MDLocation. More...
 
class  LLVMContextImpl
 
class  LLVMDisasmContext
 
struct  DenseMapInfo< CIEKey >
 
class  RecordStreamer
 
struct  fltSemantics
 
struct  ilist_sentinel_traits< Token >
 
struct  ilist_node_traits< Token >
 
class  TableGenStringKey
 
struct  DenseMapInfo< TableGenStringKey >
 Specialize DenseMapInfo for TableGenStringKey. More...
 
class  TGLexer
 TGLexer - TableGen Lexer class. More...
 
struct  SubClassReference
 
struct  SubMultiClassReference
 
struct  LetRecord
 
struct  ForeachLoop
 
class  TGParser
 
class  AArch64FrameLowering
 
class  AArch64InstrInfo
 
class  AArch64TargetLowering
 
class  AArch64FunctionInfo
 
class  AArch64MCInstLower
 
class  A57ChainingConstraint
 Add the accumulator chaining constraint to a PBQP graph. More...
 
struct  AArch64RegisterInfo
 
class  AArch64SelectionDAGInfo
 
class  AArch64Subtarget
 
class  AArch64TargetMachine
 
class  AArch64leTargetMachine
 
class  AArch64beTargetMachine
 
class  AArch64_ELFTargetObjectFile
 This implementation is used for AArch64 ELF targets (Linux in particular). More...
 
class  AArch64_MachoTargetObjectFile
 AArch64_MachoTargetObjectFile - This TLOF implementation is used for Darwin. More...
 
class  AArch64Disassembler
 
class  AArch64ExternalSymbolizer
 
class  AArch64InstPrinter
 
class  AArch64AppleInstPrinter
 
struct  AArch64MCAsmInfoDarwin
 
struct  AArch64MCAsmInfoELF
 
class  AArch64MCExpr
 
struct  AArch64NamedImmMapper
 
class  ARMAsmPrinter
 
class  ARMBaseInstrInfo
 
class  ARMBaseRegisterInfo
 
class  ARMConstantPoolValue
 
class  ARMConstantPoolConstant
 
class  ARMConstantPoolSymbol
 
class  ARMConstantPoolMBB
 
class  ARMFrameLowering
 
class  ARMHazardRecognizer
 
class  ARMInstrInfo
 
class  ARMTargetLowering
 
class  ARMFunctionInfo
 
struct  ARMRegisterInfo
 
class  ARMSelectionDAGInfo
 
class  ARMSubtarget
 
class  ARMBaseTargetMachine
 
class  ARMTargetMachine
 
class  ARMLETargetMachine
 
class  ARMBETargetMachine
 
class  ThumbTargetMachine
 
class  ThumbLETargetMachine
 
class  ThumbBETargetMachine
 
class  ARMElfTargetObjectFile
 
class  ARMInstPrinter
 
class  ARMMCAsmInfoDarwin
 
class  ARMELFMCAsmInfo
 
class  ARMCOFFMCAsmInfoMicrosoft
 
class  ARMCOFFMCAsmInfoGNU
 
class  ARMMCExpr
 
class  UnwindOpcodeAssembler
 
class  Thumb1FrameLowering
 
class  Thumb1InstrInfo
 
struct  Thumb1RegisterInfo
 
class  Thumb2InstrInfo
 
struct  Thumb2RegisterInfo
 
class  CPPSubtarget
 
struct  CPPTargetMachine
 
class  HexagonAsmPrinter
 
class  Hexagon_CCState
 
class  HexagonFrameLowering
 
class  HexagonInstrInfo
 
class  HexagonTargetLowering
 
class  HexagonMachineFunctionInfo
 Hexagon target-specific information for each MachineFunction. More...
 
class  VLIWResourceModel
 
class  VLIWMachineScheduler
 
class  ConvergingVLIWScheduler
 
struct  HexagonRegisterInfo
 
class  HexagonSelectionDAGInfo
 
class  HexagonSubtarget
 
class  HexagonTargetMachine
 
class  HexagonTargetObjectFile
 
class  HexagonInstPrinter
 
class  HexagonMCAsmInfo
 
class  HexagonMCCodeEmitter
 
class  HexagonMCInst
 
class  MipsInstPrinter
 
struct  MipsABIFlagsSection
 
class  MipsABIInfo
 
class  MipsAsmBackend
 
class  MipsELFStreamer
 
class  MipsMCAsmInfo
 
class  MipsMCCodeEmitter
 
class  MipsMCExpr
 
class  Mips16FrameLowering
 
class  Mips16HardFloat
 
class  Mips16InstrInfo
 
class  Mips16DAGToDAGISel
 
class  Mips16TargetLowering
 
class  Mips16RegisterInfo
 
class  MipsAnalyzeImmediate
 
class  MipsAsmPrinter
 
class  MipsCCState
 
class  MipsFrameLowering
 
class  MipsInstrInfo
 
class  MipsDAGToDAGISel
 
class  MipsTargetLowering
 
class  MipsCallEntry
 A class derived from PseudoSourceValue that represents a GOT entry resolved by lazy-binding. More...
 
class  MipsFunctionInfo
 
class  MipsMCInstLower
 MipsMCInstLower - This class is used to lower an MachineInstr into an. More...
 
class  MipsModuleDAGToDAGISel
 
class  MipsOptionRecord
 
class  MipsRegInfoRecord
 
class  MipsOs16
 
class  MipsRegisterInfo
 
class  MipsSEFrameLowering
 
class  MipsSEInstrInfo
 
class  MipsSEDAGToDAGISel
 
class  MipsSETargetLowering
 
class  MipsSelectionDAGInfo
 
class  MipsSERegisterInfo
 
class  MipsSubtarget
 
class  MipsTargetMachine
 
class  MipsebTargetMachine
 
class  MipselTargetMachine
 
class  MipsTargetObjectFile
 
class  MipsTargetStreamer
 
class  MipsTargetAsmStreamer
 
class  MipsTargetELFStreamer
 
class  MSP430InstPrinter
 
class  MSP430MCAsmInfo
 
class  MSP430FrameLowering
 
class  MSP430InstrInfo
 
class  MSP430TargetLowering
 
class  MSP430MachineFunctionInfo
 
class  MSP430MCInstLower
 
struct  MSP430RegisterInfo
 
class  MSP430SelectionDAGInfo
 
class  MSP430Subtarget
 
class  MSP430TargetMachine
 
class  NVPTXInstPrinter
 
class  ManagedStringPool
 
class  NVPTXMCAsmInfo
 
class  NVPTXAllocaHoisting
 
class  LineReader
 
class  NVPTXAsmPrinter
 
class  NVPTXFrameLowering
 
class  NVPTXInstrInfo
 
class  NVPTXTargetLowering
 
struct  NVPTXLowerAggrCopies
 
class  NVPTXMachineFunctionInfo
 
class  NVPTXFloatMCExpr
 
class  NVPTXRegisterInfo
 
class  NVPTXSection
 
class  NVPTXSubtarget
 
class  NVPTXTargetMachine
 
class  NVPTXTargetMachine32
 
class  NVPTXTargetMachine64
 
class  NVPTXTargetObjectFile
 
class  PPCInstPrinter
 
class  PPCMCAsmInfoDarwin
 
class  PPCELFMCAsmInfo
 
class  PPCMCExpr
 
class  PPCFrameLowering
 
class  PPCDispatchGroupSBHazardRecognizer
 
class  PPCHazardRecognizer970
 
class  PPCInstrInfo
 
class  PPCTargetLowering
 
class  PPCFunctionInfo
 
class  PPCRegisterInfo
 
class  PPCSelectionDAGInfo
 
class  PPCSubtarget
 
class  PPCTargetMachine
 
class  PPC32TargetMachine
 
class  PPC64TargetMachine
 
class  PPC64LinuxTargetObjectFile
 
class  PPCTargetStreamer
 
class  AMDGPUAsmPrinter
 
class  AMDGPUFrameLowering
 Information about the stack frame layout on the AMDGPU targets. More...
 
class  AMDGPUInstrInfo
 
class  AMDGPUIntrinsicInfo
 
class  AMDGPUTargetLowering
 
class  AMDGPUMachineFunction
 
class  AMDGPUMCInstLower
 
struct  AMDGPURegisterInfo
 
class  AMDGPUSubtarget
 
class  AMDGPUTargetMachine
 
class  GCNTargetMachine
 
class  AMDGPUInstPrinter
 
class  AMDGPUMCAsmInfo
 
class  AMDGPUMCCodeEmitter
 
class  R600InstrInfo
 
class  R600TargetLowering
 
class  R600MachineFunctionInfo
 
class  R600SchedStrategy
 
struct  R600RegisterInfo
 
class  SIInstrInfo
 
class  SITargetLowering
 
class  SIMachineFunctionInfo
 
struct  SIRegisterInfo
 
class  SparcInstPrinter
 
class  SparcELFMCAsmInfo
 
class  SparcMCExpr
 
class  SparcFrameLowering
 
class  SparcInstrInfo
 
class  SparcTargetLowering
 
class  SparcMachineFunctionInfo
 
struct  SparcRegisterInfo
 
class  SparcSelectionDAGInfo
 
class  SparcSubtarget
 
class  SparcTargetMachine
 
class  SparcV8TargetMachine
 
class  SparcV9TargetMachine
 
class  SparcELFTargetObjectFile
 
class  SparcTargetStreamer
 
class  SparcTargetAsmStreamer
 
class  SparcTargetELFStreamer
 
class  SystemZInstPrinter
 
class  SystemZMCAsmInfo
 
class  SystemZAsmPrinter
 
class  SystemZConstantPoolValue
 
class  SystemZFrameLowering
 
class  SystemZInstrInfo
 
class  SystemZTargetLowering
 
class  SystemZMachineFunctionInfo
 
class  SystemZMCInstLower
 
struct  SystemZRegisterInfo
 
class  SystemZSelectionDAGInfo
 
class  SystemZSubtarget
 
class  SystemZTargetMachine
 
class  X86AsmInstrumentation
 
struct  X86Operand
 
class  X86ATTInstPrinter
 
class  X86IntelInstPrinter
 
class  X86MCAsmInfoDarwin
 
struct  X86_64MCAsmInfoDarwin
 
class  X86ELFMCAsmInfo
 
class  X86MCAsmInfoMicrosoft
 
class  X86MCAsmInfoGNUCOFF
 
class  X86AsmPrinter
 
class  X86FrameLowering
 
struct  X86AddressMode
 
class  X86InstrInfo
 
struct  IntrinsicData
 
class  X86TargetLowering
 
class  X86MachineFunctionInfo
 
class  X86RegisterInfo
 
class  X86SelectionDAGInfo
 
class  X86Subtarget
 
class  X86TargetMachine
 
class  X86_64MachoTargetObjectFile
 
class  X86LinuxTargetObjectFile
 
class  X86WindowsTargetObjectFile
 This implementation is used for Windows targets on x86 and x86-64. More...
 
class  XCoreInstPrinter
 
class  XCoreMCAsmInfo
 
class  XCoreFrameLowering
 
class  XCoreInstrInfo
 
class  XCoreTargetLowering
 
class  XCoreFunctionInfo
 
class  XCoreMCInstLower
 This class is used to lower an MachineInstr into an MCInst. More...
 
struct  XCoreRegisterInfo
 
class  XCoreSelectionDAGInfo
 
class  XCoreSubtarget
 
class  XCoreTargetMachine
 
class  XCoreTargetObjectFile
 
class  XCoreTargetStreamer
 
class  InstCombineIRInserter
 
class  InstCombiner
 InstCombiner - The -instcombine pass. More...
 
struct  DenseMapInfo< LoweredPHIRecord >
 
class  InstCombineWorklist
 
class  MaximumSpanningTree
 
struct  GraphTraits< ArgumentGraphNode * >
 
struct  GraphTraits< ArgumentGraph * >
 
struct  DenseMapInfo< SimpleValue >
 
struct  DenseMapInfo< CallValue >
 
struct  DenseMapInfo< Expression >
 
struct  isPodLike< Slice >
 
struct  DenseMapInfo< DivOpInfo >
 
class  SSAUpdaterTraits< SSAUpdater >
 

Typedefs

typedef uint64_t integerPart
 
typedef FoldingSetImpl::Node FoldingSetNode
 
typedef PassManager
< LazyCallGraph::SCC
CGSCCPassManager
 The CGSCC pass manager. More...
 
typedef AnalysisManager
< LazyCallGraph::SCC
CGSCCAnalysisManager
 The CGSCC analysis manager. More...
 
typedef IntervalIterator
< BasicBlock, Function
function_interval_iterator
 
typedef IntervalIterator
< Interval, IntervalPartition
interval_part_interval_iterator
 
typedef std::pair< APInt, APIntSizeOffsetType
 
typedef std::pair< Value
*, Value * > 
SizeOffsetEvalType
 
typedef DenseMap< const Value
*, Value * > 
ValueToValueMap
 
typedef DenseMap< const Loop
*, const SCEV * > 
LoopToScevMapT
 
typedef SmallPtrSet< const
Loop *, 2 > 
PostIncLoopSet
 PostIncLoopSet - A set of loops. More...
 
typedef bool CCAssignFn (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State)
 
typedef bool CCCustomFn (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
typedef Registry
< GCMetadataPrinter
GCMetadataPrinterRegistry
 
typedef Registry< GCStrategyGCRegistry
 
typedef std::pair< const
MachineInstr *, const
MachineInstr * > 
InsnRange
 
typedef SparseBitVector< 128 > LiveVirtRegBitSet
 
typedef DomTreeNodeBase
< MachineBasicBlock
MachineDomTreeNode
 
typedef void *(* MachinePassCtor )()
 
typedef PBQP::RegAlloc::PBQPRAGraph PBQPRAGraph
 
typedef SparseMultiSet
< PhysRegSUOper,
llvm::identity< unsigned >
, uint16_t > 
Reg2SUnitsMap
 
typedef SparseSet< VReg2SUnit,
VirtReg2IndexFunctor
VReg2SUnitMap
 
typedef SparseMultiSet
< VReg2SUnit,
VirtReg2IndexFunctor
VReg2UseMap
 
typedef AtomicSDNode LargestSDNode
 
typedef GlobalAddressSDNode MostAlignedSDNode
 
typedef std::pair< SlotIndex,
MachineBasicBlock * > 
IdxMBBPair
 
typedef SmallVector< std::pair
< uint64_t, DILineInfo >, 16 > 
DILineInfoTable
 
typedef DenseMap< uint64_t,
std::pair< uint8_t, int64_t > > 
RelocAddrMap
 
typedef std::vector< std::pair
< uint64_t, uint64_t > > 
DWARFAddressRangesVector
 DWARFAddressRangesVector - represents a set of absolute address ranges. More...
 
typedef void * PointerTy
 
typedef PredIterator
< BasicBlock,
Value::user_iterator
pred_iterator
 
typedef PredIterator< const
BasicBlock,
Value::const_user_iterator
const_pred_iterator
 
typedef SuccIterator
< TerminatorInst *, BasicBlock
succ_iterator
 
typedef SuccIterator< const
TerminatorInst *, const
BasicBlock
succ_const_iterator
 
typedef DenseMap< const
MDString *, MDNode * > 
DITypeIdentifierMap
 Maps from type identifier to the actual MDNode. More...
 
typedef DITypedArray
< DIDescriptor
DIArray
 
typedef DIRef< DIScopeDIScopeRef
 
typedef DIRef< DITypeDITypeRef
 
typedef DITypedArray< DITypeRefDITypeArray
 
typedef std::function< void(const
DiagnosticInfo &)> 
DiagnosticHandlerFunction
 
typedef DomTreeNodeBase
< BasicBlock
DomTreeNode
 
typedef generic_gep_type_iterator gep_type_iterator
 
typedef InstIterator< iplist
< BasicBlock >
, Function::iterator,
BasicBlock::iterator,
Instruction
inst_iterator
 
typedef InstIterator< const
iplist< BasicBlock >
, Function::const_iterator,
BasicBlock::const_iterator,
const Instruction
const_inst_iterator
 
typedef PassManager< ModuleModulePassManager
 Convenience typedef for a pass manager over modules. More...
 
typedef PassManager< FunctionFunctionPassManager
 Convenience typedef for a pass manager over functions. More...
 
typedef AnalysisManager< ModuleModuleAnalysisManager
 Convenience typedef for the Module analysis manager. More...
 
typedef AnalysisManager< FunctionFunctionAnalysisManager
 Convenience typedef for the Function analysis manager. More...
 
typedef TypedTrackingMDRef
< MDNode
TrackingMDNodeRef
 
typedef TypedTrackingMDRef
< ValueAsMetadata
TrackingValueAsMetadataRef
 
typedef std::vector< UseListOrderUseListOrderStack
 
typedef StringMapEntry< Value * > ValueName
 
typedef DenseMap< const
MCSectionData *, uint64_t > 
SectionAddrMap
 
typedef MCLOHDirective::LOHArgs MCLOHArgs
 
typedef
MCLOHContainer::LOHDirectives 
MCLOHDirectives
 
typedef uint16_t MCPhysReg
 
typedef std::pair< const
MCSection *, const MCExpr * > 
MCSectionSubPair
 
typedef SmallVectorImpl
< std::unique_ptr
< MCParsedAsmOperand > > 
OperandVector
 
typedef const void * AnalysisID
 
typedef RawInstrProfReader
< uint32_t > 
RawInstrProfReader32
 
typedef RawInstrProfReader
< uint64_t > 
RawInstrProfReader64
 
typedef
OnDiskIterableChainedHashTable
< InstrProfLookupTrait
InstrProfReaderIndex
 
typedef BumpPtrAllocatorImpl BumpPtrAllocator
 The standard BumpPtrAllocator which just uses the default template paramaters. More...
 
typedef void(* fatal_error_handler_t )(void *user_data, const std::string &reason, bool gen_crash_diag)
 An error handler callback. More...
 
typedef bool TableGenMainFn (raw_ostream &OS, RecordKeeper &Records)
 Perform the action using Records, and write output to OS. More...
 
typedef ValueMap< const Value
*, WeakVH
ValueToValueMapTy
 
typedef unsigned StratifiedIndex
 
typedef std::bitset
< NumStratifiedAttrs
StratifiedAttrs
 
typedef std::vector< GenericValueValuePlaneTy
 
typedef bool Hexagon_CCAssignFn (unsigned ValNo, EVT ValVT, EVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Hexagon_CCState &State, int NonVarArgsParams, int CurrentParam, bool ForceMem)
 
typedef DenseMap< DivOpInfo,
DivPhiNodes > 
DivCacheTy
 

Enumerations

enum  lostFraction { lfExactlyZero, lfLessThanHalf, lfExactlyHalf, lfMoreThanHalf }
 
enum  NoneType { None }
 A simple null object to allow implicit construction of Optional<T> and similar types without having to spell out the specialization's name. More...
 
enum  SCEVTypes {
  scConstant, scTruncate, scZeroExtend, scSignExtend,
  scAddExpr, scMulExpr, scUDivExpr, scAddRecExpr,
  scUMaxExpr, scSMaxExpr, scUnknown, scCouldNotCompute
}
 
enum  TransformKind { Normalize, NormalizeAutodetect, Denormalize }
 
enum  OverflowResult { OverflowResult::AlwaysOverflows, OverflowResult::MayOverflow, OverflowResult::NeverOverflows }
 
enum  BitcodeError { BitcodeError::InvalidBitcodeSignature, BitcodeError::CorruptedBitcode }
 
enum  ParmContext { Unknown, Prologue, Call }
 
enum  CombineLevel { BeforeLegalizeTypes, AfterLegalizeTypes, AfterLegalizeVectorOps, AfterLegalizeDAG }
 
enum  DINameKind { DINameKind::None, DINameKind::ShortName, DINameKind::LinkageName }
 
enum  DIDumpType {
  DIDT_Null, DIDT_All, DIDT_Abbrev, DIDT_AbbrevDwo,
  DIDT_Aranges, DIDT_Frames, DIDT_Info, DIDT_InfoDwo,
  DIDT_Types, DIDT_TypesDwo, DIDT_Line, DIDT_LineDwo,
  DIDT_Loc, DIDT_LocDwo, DIDT_Ranges, DIDT_Pubnames,
  DIDT_Pubtypes, DIDT_GnuPubnames, DIDT_GnuPubtypes, DIDT_Str,
  DIDT_StrDwo, DIDT_StrOffsetsDwo, DIDT_AppleNames, DIDT_AppleTypes,
  DIDT_AppleNamespaces, DIDT_AppleObjC
}
 Selects which debug sections get dumped. More...
 
enum  AlignTypeEnum {
  INVALID_ALIGN = 0, INTEGER_ALIGN = 'i', VECTOR_ALIGN = 'v', FLOAT_ALIGN = 'f',
  AGGREGATE_ALIGN = 'a'
}
 Enum used to categorize the alignment types stored by LayoutAlignElem. More...
 
enum  DiagnosticSeverity { DS_Error, DS_Warning, DS_Remark, DS_Note }
 Defines the different supported severity of a diagnostic. More...
 
enum  DiagnosticKind {
  DK_Bitcode, DK_InlineAsm, DK_StackSize, DK_Linker,
  DK_DebugMetadataVersion, DK_SampleProfile, DK_OptimizationRemark, DK_OptimizationRemarkMissed,
  DK_OptimizationRemarkAnalysis, DK_OptimizationFailure, DK_FirstPluginKind
}
 Defines the different supported kind of a diagnostic. This enum should be extended with a new ID for each added concrete subclass. More...
 
enum  AtomicOrdering {
  NotAtomic = 0, Unordered = 1, Monotonic = 2, Acquire = 4,
  Release = 5, AcquireRelease = 6, SequentiallyConsistent = 7
}
 
enum  SynchronizationScope { SingleThread = 0, CrossThread = 1 }
 
enum  PassDebuggingString {
  EXECUTION_MSG, MODIFICATION_MSG, FREEING_MSG, ON_BASICBLOCK_MSG,
  ON_FUNCTION_MSG, ON_MODULE_MSG, ON_REGION_MSG, ON_LOOP_MSG,
  ON_CG_MSG
}
 
enum  LLVMConstants : uint32_t { DEBUG_METADATA_VERSION = 2 }
 
enum  ExceptionHandling {
  ExceptionHandling::None, ExceptionHandling::DwarfCFI, ExceptionHandling::SjLj, ExceptionHandling::ARM,
  ExceptionHandling::ItaniumWinEH, ExceptionHandling::MSVC
}
 
enum  MCSymbolAttr {
  MCSA_Invalid = 0, MCSA_ELF_TypeFunction, MCSA_ELF_TypeIndFunction, MCSA_ELF_TypeObject,
  MCSA_ELF_TypeTLS, MCSA_ELF_TypeCommon, MCSA_ELF_TypeNoType, MCSA_ELF_TypeGnuUniqueObject,
  MCSA_Global, MCSA_Hidden, MCSA_IndirectSymbol, MCSA_Internal,
  MCSA_LazyReference, MCSA_Local, MCSA_NoDeadStrip, MCSA_SymbolResolver,
  MCSA_PrivateExtern, MCSA_Protected, MCSA_Reference, MCSA_Weak,
  MCSA_WeakDefinition, MCSA_WeakReference, MCSA_WeakDefAutoPrivate
}
 
enum  MCAssemblerFlag {
  MCAF_SyntaxUnified, MCAF_SubsectionsViaSymbols, MCAF_Code16, MCAF_Code32,
  MCAF_Code64
}
 
enum  MCDataRegionType {
  MCDR_DataRegion, MCDR_DataRegionJT8, MCDR_DataRegionJT16, MCDR_DataRegionJT32,
  MCDR_DataRegionEnd
}
 
enum  MCVersionMinType { MCVM_IOSVersionMin, MCVM_OSXVersionMin }
 
enum  { ELF_STT_Shift = 0, ELF_STB_Shift = 4, ELF_STV_Shift = 8, ELF_STO_Shift = 10 }
 
enum  ELFSymbolFlags {
  ELF_STB_Local = (ELF::STB_LOCAL << ELF_STB_Shift), ELF_STB_Global = (ELF::STB_GLOBAL << ELF_STB_Shift), ELF_STB_Weak = (ELF::STB_WEAK << ELF_STB_Shift), ELF_STB_Loproc = (ELF::STB_LOPROC << ELF_STB_Shift),
  ELF_STB_Hiproc = (ELF::STB_HIPROC << ELF_STB_Shift), ELF_STT_Notype = (ELF::STT_NOTYPE << ELF_STT_Shift), ELF_STT_Object = (ELF::STT_OBJECT << ELF_STT_Shift), ELF_STT_Func = (ELF::STT_FUNC << ELF_STT_Shift),
  ELF_STT_Section = (ELF::STT_SECTION << ELF_STT_Shift), ELF_STT_File = (ELF::STT_FILE << ELF_STT_Shift), ELF_STT_Common = (ELF::STT_COMMON << ELF_STT_Shift), ELF_STT_Tls = (ELF::STT_TLS << ELF_STT_Shift),
  ELF_STT_GnuIFunc = (ELF::STT_GNU_IFUNC << ELF_STT_Shift), ELF_STT_Loproc = (ELF::STT_LOPROC << ELF_STT_Shift), ELF_STT_Hiproc = (ELF::STT_HIPROC << ELF_STT_Shift), ELF_STV_Default = (ELF::STV_DEFAULT << ELF_STV_Shift),
  ELF_STV_Internal = (ELF::STV_INTERNAL << ELF_STV_Shift), ELF_STV_Hidden = (ELF::STV_HIDDEN << ELF_STV_Shift), ELF_STV_Protected = (ELF::STV_PROTECTED << ELF_STV_Shift)
}
 
enum  MCFixupKind {
  FK_Data_1 = 0, FK_Data_2, FK_Data_4, FK_Data_8,
  FK_PCRel_1, FK_PCRel_2, FK_PCRel_4, FK_PCRel_8,
  FK_GPRel_1, FK_GPRel_2, FK_GPRel_4, FK_GPRel_8,
  FK_SecRel_1, FK_SecRel_2, FK_SecRel_4, FK_SecRel_8,
  FirstTargetFixupKind = 128, MaxTargetFixupKind = (1 << 8)
}
 MCFixupKind - Extensible enumeration to represent the type of a fixup. More...
 
enum  MCLOHType {
  MCLOH_AdrpAdrp = 0x1u, MCLOH_AdrpLdr = 0x2u, MCLOH_AdrpAddLdr = 0x3u, MCLOH_AdrpLdrGotLdr = 0x4u,
  MCLOH_AdrpAddStr = 0x5u, MCLOH_AdrpLdrGotStr = 0x6u, MCLOH_AdrpAdd = 0x7u, MCLOH_AdrpLdrGot = 0x8u
}
 Linker Optimization Hint Type. More...
 
enum  MachOSymbolFlags {
  SF_DescFlagsMask = 0xFFFF, SF_ReferenceTypeMask = 0x0007, SF_ReferenceTypeUndefinedNonLazy = 0x0000, SF_ReferenceTypeUndefinedLazy = 0x0001,
  SF_ReferenceTypeDefined = 0x0002, SF_ReferenceTypePrivateDefined = 0x0003, SF_ReferenceTypePrivateUndefinedNonLazy = 0x0004, SF_ReferenceTypePrivateUndefinedLazy = 0x0005,
  SF_ThumbFunc = 0x0008, SF_NoDeadStrip = 0x0020, SF_WeakReference = 0x0040, SF_WeakDefinition = 0x0080,
  SF_SymbolResolver = 0x0100
}
 
enum  AsmRewriteKind {
  AOK_Delete = 0, AOK_Align, AOK_DotOperator, AOK_Emit,
  AOK_Imm, AOK_ImmPrefix, AOK_Input, AOK_Output,
  AOK_SizeDirective, AOK_Label, AOK_Skip
}
 
enum  PassManagerType {
  PMT_Unknown = 0, PMT_ModulePassManager = 1, PMT_CallGraphPassManager, PMT_FunctionPassManager,
  PMT_LoopPassManager, PMT_RegionPassManager, PMT_BasicBlockPassManager, PMT_Last
}
 
enum  PassKind {
  PT_BasicBlock, PT_Region, PT_Loop, PT_Function,
  PT_CallGraphSCC, PT_Module, PT_PassManager
}
 
enum  instrprof_error {
  instrprof_error::success = 0, instrprof_error::eof, instrprof_error::bad_magic, instrprof_error::bad_header,
  instrprof_error::unsupported_version, instrprof_error::unsupported_hash_type, instrprof_error::too_large, instrprof_error::truncated,
  instrprof_error::malformed, instrprof_error::unknown_function, instrprof_error::hash_mismatch, instrprof_error::count_mismatch,
  instrprof_error::counter_overflow
}
 
enum  sampleprof_error {
  sampleprof_error::success = 0, sampleprof_error::bad_magic, sampleprof_error::unsupported_version, sampleprof_error::too_large,
  sampleprof_error::truncated, sampleprof_error::malformed, sampleprof_error::unrecognized_format
}
 
enum  errc {
  errc::argument_list_too_long = int(std::errc::argument_list_too_long), errc::argument_out_of_domain = int(std::errc::argument_out_of_domain), errc::bad_address = int(std::errc::bad_address), errc::bad_file_descriptor = int(std::errc::bad_file_descriptor),
  errc::broken_pipe = int(std::errc::broken_pipe), errc::device_or_resource_busy = int(std::errc::device_or_resource_busy), errc::directory_not_empty = int(std::errc::directory_not_empty), errc::executable_format_error = int(std::errc::executable_format_error),
  errc::file_exists = int(std::errc::file_exists), errc::file_too_large = int(std::errc::file_too_large), errc::filename_too_long = int(std::errc::filename_too_long), errc::function_not_supported = int(std::errc::function_not_supported),
  errc::illegal_byte_sequence = int(std::errc::illegal_byte_sequence), errc::inappropriate_io_control_operation, errc::interrupted = int(std::errc::interrupted), errc::invalid_argument = int(std::errc::invalid_argument),
  errc::invalid_seek = int(std::errc::invalid_seek), errc::io_error = int(std::errc::io_error), errc::is_a_directory = int(std::errc::is_a_directory), errc::no_child_process = int(std::errc::no_child_process),
  errc::no_lock_available = int(std::errc::no_lock_available), errc::no_space_on_device = int(std::errc::no_space_on_device), errc::no_such_device_or_address = int(std::errc::no_such_device_or_address), errc::no_such_device = int(std::errc::no_such_device),
  errc::no_such_file_or_directory = int(std::errc::no_such_file_or_directory), errc::no_such_process = int(std::errc::no_such_process), errc::not_a_directory = int(std::errc::not_a_directory), errc::not_enough_memory = int(std::errc::not_enough_memory),
  errc::operation_not_permitted = int(std::errc::operation_not_permitted), errc::permission_denied = int(std::errc::permission_denied), errc::read_only_file_system = int(std::errc::read_only_file_system), errc::resource_deadlock_would_occur = int(std::errc::resource_deadlock_would_occur),
  errc::resource_unavailable_try_again, errc::result_out_of_range = int(std::errc::result_out_of_range), errc::too_many_files_open_in_system = int(std::errc::too_many_files_open_in_system), errc::too_many_files_open = int(std::errc::too_many_files_open),
  errc::too_many_links = int(std::errc::too_many_links)
}
 
enum  ZeroBehavior { ZB_Undefined, ZB_Max, ZB_Width }
 The behavior an operation has on an input of 0. More...
 
enum  CFIntegrity { CFIntegrity::Sub, CFIntegrity::Ror, CFIntegrity::Add }
 
enum  RemapFlags { RF_None = 0, RF_NoModuleLevelChanges = 1, RF_IgnoreMissingEntries = 2 }
 RemapFlags - These are flags that the value mapping APIs allow. More...
 
enum  AArch64FrameOffsetStatus { AArch64FrameOffsetCannotUpdate = 0x0, AArch64FrameOffsetIsLegal = 0x1, AArch64FrameOffsetCanUpdate = 0x2 }
 Use to report the frame offset status in isAArch64FrameOffsetLegal. More...
 
enum  NEONModImmType { VMOVModImm, VMVNModImm, OtherModImm }
 
enum  AddressSpace {
  ADDRESS_SPACE_GENERIC = 0, ADDRESS_SPACE_GLOBAL = 1, ADDRESS_SPACE_SHARED = 3, ADDRESS_SPACE_CONST = 4,
  ADDRESS_SPACE_LOCAL = 5, ADDRESS_SPACE_PARAM = 101
}
 
enum  PropertyAnnotation {
  PROPERTY_MAXNTID_X = 0, PROPERTY_MAXNTID_Y, PROPERTY_MAXNTID_Z, PROPERTY_REQNTID_X,
  PROPERTY_REQNTID_Y, PROPERTY_REQNTID_Z, PROPERTY_MINNCTAPERSM, PROPERTY_ISTEXTURE,
  PROPERTY_ISSURFACE, PROPERTY_ISSAMPLER, PROPERTY_ISREADONLY_IMAGE_PARAM, PROPERTY_ISWRITEONLY_IMAGE_PARAM,
  PROPERTY_ISREADWRITE_IMAGE_PARAM, PROPERTY_ISKERNEL_FUNCTION, PROPERTY_ALIGN, PROPERTY_MANAGED,
  PROPERTY_LAST
}
 
enum  { SM_SentinelUndef = -1, SM_SentinelZero = -2 }
 
enum  IntrinsicType {
  INTR_NO_TYPE, GATHER, SCATTER, PREFETCH,
  RDSEED, RDRAND, RDPMC, RDTSC,
  XTEST, ADX, INTR_TYPE_1OP, INTR_TYPE_2OP,
  INTR_TYPE_3OP, CMP_MASK, CMP_MASK_CC, VSHIFT,
  VSHIFT_MASK, COMI, INTR_TYPE_1OP_MASK_RM, INTR_TYPE_2OP_MASK,
  FMA_OP_MASK, INTR_TYPE_SCALAR_MASK_RM, COMPRESS_EXPAND_IN_REG, COMPRESS_TO_MEM,
  EXPAND_FROM_MEM, BLEND
}
 
enum  SelectPatternFlavor {
  SPF_UNKNOWN = 0, SPF_SMIN, SPF_UMIN, SPF_SMAX,
  SPF_UMAX, SPF_ABS, SPF_NABS
}
 

Functions

hash_code hash_value (const APFloat &Arg)
 
APFloat scalbn (APFloat X, int Exp)
 
APFloat abs (APFloat X)
 Returns the absolute value of the argument. More...
 
LLVM_READONLY APFloat minnum (const APFloat &A, const APFloat &B)
 
LLVM_READONLY APFloat maxnum (const APFloat &A, const APFloat &B)
 
bool operator== (uint64_t V1, const APInt &V2)
 
bool operator!= (uint64_t V1, const APInt &V2)
 
raw_ostreamoperator<< (raw_ostream &OS, const APInt &I)
 
hash_code hash_value (const APInt &Arg)
 
bool operator== (int64_t V1, const APSInt &V2)
 
bool operator!= (int64_t V1, const APSInt &V2)
 
raw_ostreamoperator<< (raw_ostream &OS, const APSInt &I)
 
template<typename KeyT , typename ValueT , typename KeyInfoT >
static size_t capacity_in_bytes (const DenseMap< KeyT, ValueT, KeyInfoT > &X)
 
template<class T >
df_iterator< Tdf_begin (const T &G)
 
template<class T >
df_iterator< Tdf_end (const T &G)
 
template<class T >
iterator_range< df_iterator< T > > depth_first (const T &G)
 
template<class T , class SetTy >
df_ext_iterator< T, SetTydf_ext_begin (const T &G, SetTy &S)
 
template<class T , class SetTy >
df_ext_iterator< T, SetTydf_ext_end (const T &G, SetTy &S)
 
template<class T , class SetTy >
iterator_range
< df_ext_iterator< T, SetTy > > 
depth_first_ext (const T &G, SetTy &S)
 
template<class T >
idf_iterator< Tidf_begin (const T &G)
 
template<class T >
idf_iterator< Tidf_end (const T &G)
 
template<class T >
iterator_range< idf_iterator< T > > inverse_depth_first (const T &G)
 
template<class T , class SetTy >
idf_ext_iterator< T, SetTyidf_ext_begin (const T &G, SetTy &S)
 
template<class T , class SetTy >
idf_ext_iterator< T, SetTyidf_ext_end (const T &G, SetTy &S)
 
template<class T , class SetTy >
iterator_range
< idf_ext_iterator< T, SetTy > > 
inverse_depth_first_ext (const T &G, SetTy &S)
 
template<typename T >
unsigned ComputeEditDistance (ArrayRef< T > FromArray, ArrayRef< T > ToArray, bool AllowReplacements=true, unsigned MaxEditDistance=0)
 Determine the edit distance between two sequences. More...
 
template<typename T >
std::enable_if
< is_integral_or_enum< T >
::value, hash_code >::type 
hash_value (T value)
 Compute a hash_code for any integer value. More...
 
template<typename T >
hash_code hash_value (const T *ptr)
 Compute a hash_code for a pointer's address. More...
 
template<typename T , typename U >
hash_code hash_value (const std::pair< T, U > &arg)
 Compute a hash_code for a pair of objects. More...
 
template<typename T >
hash_code hash_value (const std::basic_string< T > &arg)
 Compute a hash_code for a standard string. More...
 
void set_fixed_execution_hash_seed (size_t fixed_value)
 Override the execution seed with a fixed value. More...
 
template<typename InputIteratorT >
hash_code hash_combine_range (InputIteratorT first, InputIteratorT last)
 Compute a hash_code for a sequence of values. More...
 
template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
hash_code hash_combine (const T1 &arg1, const T2 &arg2, const T3 &arg3, const T4 &arg4, const T5 &arg5, const T6 &arg6)
 
template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
hash_code hash_combine (const T1 &arg1, const T2 &arg2, const T3 &arg3, const T4 &arg4, const T5 &arg5)
 
template<typename T1 , typename T2 , typename T3 , typename T4 >
hash_code hash_combine (const T1 &arg1, const T2 &arg2, const T3 &arg3, const T4 &arg4)
 
template<typename T1 , typename T2 , typename T3 >
hash_code hash_combine (const T1 &arg1, const T2 &arg2, const T3 &arg3)
 
template<typename T1 , typename T2 >
hash_code hash_combine (const T1 &arg1, const T2 &arg2)
 
template<typename T1 >
hash_code hash_combine (const T1 &arg1)
 
template<typename T >
void operator- (int, ilist_iterator< T >) LLVM_DELETED_FUNCTION
 
template<typename T >
void operator- (ilist_iterator< T >, int) LLVM_DELETED_FUNCTION
 
template<typename T >
void operator+ (int, ilist_iterator< T >) LLVM_DELETED_FUNCTION
 
template<typename T >
void operator+ (ilist_iterator< T >, int) LLVM_DELETED_FUNCTION
 
template<typename T >
bool operator!= (const T *LHS, const ilist_iterator< const T > &RHS)
 
template<typename T >
bool operator== (const T *LHS, const ilist_iterator< const T > &RHS)
 
template<typename T >
bool operator!= (T *LHS, const ilist_iterator< T > &RHS)
 
template<typename T >
bool operator== (T *LHS, const ilist_iterator< T > &RHS)
 
template<class T , class U >
bool operator== (const IntrusiveRefCntPtr< T > &A, const IntrusiveRefCntPtr< U > &B)
 
template<class T , class U >
bool operator!= (const IntrusiveRefCntPtr< T > &A, const IntrusiveRefCntPtr< U > &B)
 
template<class T , class U >
bool operator== (const IntrusiveRefCntPtr< T > &A, U *B)
 
template<class T , class U >
bool operator!= (const IntrusiveRefCntPtr< T > &A, U *B)
 
template<class T , class U >
bool operator== (T *A, const IntrusiveRefCntPtr< U > &B)
 
template<class T , class U >
bool operator!= (T *A, const IntrusiveRefCntPtr< U > &B)
 
template<class T >
bool operator== (std::nullptr_t A, const IntrusiveRefCntPtr< T > &B)
 
template<class T >
bool operator== (const IntrusiveRefCntPtr< T > &A, std::nullptr_t B)
 
template<class T >
bool operator!= (std::nullptr_t A, const IntrusiveRefCntPtr< T > &B)
 
template<class T >
bool operator!= (const IntrusiveRefCntPtr< T > &A, std::nullptr_t B)
 
template<class T >
iterator_range< Tmake_range (T x, T y)
 Convenience function for iterating over sub-ranges. More...
 
template<typename T >
iterator_range< Tmake_range (std::pair< T, T > p)
 
template<typename T , typename U >
void operator== (const Optional< T > &X, const Optional< U > &Y)
 Poison comparison between two Optional objects. Clients needs to explicitly compare the underlying values and account for empty Optional objects. More...
 
template<typename T , typename U >
void operator!= (const Optional< T > &X, const Optional< U > &Y)
 Poison comparison between two Optional objects. Clients needs to explicitly compare the underlying values and account for empty Optional objects. More...
 
template<typename T , typename U >
void operator< (const Optional< T > &X, const Optional< U > &Y)
 Poison comparison between two Optional objects. Clients needs to explicitly compare the underlying values and account for empty Optional objects. More...
 
template<typename T , typename U >
void operator<= (const Optional< T > &X, const Optional< U > &Y)
 Poison comparison between two Optional objects. Clients needs to explicitly compare the underlying values and account for empty Optional objects. More...
 
template<typename T , typename U >
void operator>= (const Optional< T > &X, const Optional< U > &Y)
 Poison comparison between two Optional objects. Clients needs to explicitly compare the underlying values and account for empty Optional objects. More...
 
template<typename T , typename U >
void operator> (const Optional< T > &X, const Optional< U > &Y)
 Poison comparison between two Optional objects. Clients needs to explicitly compare the underlying values and account for empty Optional objects. More...
 
template<typename PT1 , typename PT2 >
static bool operator== (PointerUnion< PT1, PT2 > lhs, PointerUnion< PT1, PT2 > rhs)
 
template<typename PT1 , typename PT2 >
static bool operator!= (PointerUnion< PT1, PT2 > lhs, PointerUnion< PT1, PT2 > rhs)
 
template<class T >
po_iterator< Tpo_begin (T G)
 
template<class T >
po_iterator< Tpo_end (T G)
 
template<class T , class SetType >
po_ext_iterator< T, SetType > po_ext_begin (T G, SetType &S)
 
template<class T , class SetType >
po_ext_iterator< T, SetType > po_ext_end (T G, SetType &S)
 
template<class T >
ipo_iterator< Tipo_begin (T G, bool Reverse=false)
 
template<class T >
ipo_iterator< Tipo_end (T G)
 
template<class T , class SetType >
ipo_ext_iterator< T, SetType > ipo_ext_begin (T G, SetType &S)
 
template<class T , class SetType >
ipo_ext_iterator< T, SetType > ipo_ext_end (T G, SetType &S)
 
template<class T >
scc_iterator< Tscc_begin (const T &G)
 Construct the begin iterator for a deduced graph type T. More...
 
template<class T >
scc_iterator< Tscc_end (const T &G)
 Construct the end iterator for a deduced graph type T. More...
 
template<class T >
scc_iterator< Inverse< T > > scc_begin (const Inverse< T > &G)
 Construct the begin iterator for a deduced graph type T's Inverse<T>. More...
 
template<class T >
scc_iterator< Inverse< T > > scc_end (const Inverse< T > &G)
 Construct the end iterator for a deduced graph type T's Inverse<T>. More...
 
template<class S1Ty , class S2Ty >
bool set_union (S1Ty &S1, const S2Ty &S2)
 
template<class S1Ty , class S2Ty >
void set_intersect (S1Ty &S1, const S2Ty &S2)
 
template<class S1Ty , class S2Ty >
S1Ty set_difference (const S1Ty &S1, const S2Ty &S2)
 
template<class S1Ty , class S2Ty >
void set_subtract (S1Ty &S1, const S2Ty &S2)
 
SmallBitVector operator& (const SmallBitVector &LHS, const SmallBitVector &RHS)
 
SmallBitVector operator| (const SmallBitVector &LHS, const SmallBitVector &RHS)
 
SmallBitVector operator^ (const SmallBitVector &LHS, const SmallBitVector &RHS)
 
template<typename T , unsigned N>
static size_t capacity_in_bytes (const SmallVector< T, N > &X)
 
template<unsigned ElementSize>
bool operator|= (SparseBitVector< ElementSize > &LHS, const SparseBitVector< ElementSize > *RHS)
 
template<unsigned ElementSize>
bool operator|= (SparseBitVector< ElementSize > *LHS, const SparseBitVector< ElementSize > &RHS)
 
template<unsigned ElementSize>
bool operator&= (SparseBitVector< ElementSize > *LHS, const SparseBitVector< ElementSize > &RHS)
 
template<unsigned ElementSize>
bool operator&= (SparseBitVector< ElementSize > &LHS, const SparseBitVector< ElementSize > *RHS)
 
template<unsigned ElementSize>
SparseBitVector< ElementSize > operator| (const SparseBitVector< ElementSize > &LHS, const SparseBitVector< ElementSize > &RHS)
 
template<unsigned ElementSize>
SparseBitVector< ElementSize > operator& (const SparseBitVector< ElementSize > &LHS, const SparseBitVector< ElementSize > &RHS)
 
template<unsigned ElementSize>
SparseBitVector< ElementSize > operator- (const SparseBitVector< ElementSize > &LHS, const SparseBitVector< ElementSize > &RHS)
 
template<unsigned ElementSize>
void dump (const SparseBitVector< ElementSize > &LHS, raw_ostream &out)
 
void EnableStatistics ()
 Enable the collection and printing of statistics. More...
 
bool AreStatisticsEnabled ()
 Check if statistics are enabled. More...
 
void PrintStatistics ()
 Print statistics to the file returned by CreateInfoOutputFile(). More...
 
void PrintStatistics (raw_ostream &OS)
 Print statistics to the given output stream. More...
 
template<class T >
void deleter (T *Ptr)
 
template<class _Iterator , class Func >
mapped_iterator< _Iterator, Func > operator+ (typename mapped_iterator< _Iterator, Func >::difference_type N, const mapped_iterator< _Iterator, Func > &X)
 
template<class ItTy , class FuncTy >
mapped_iterator< ItTy, FuncTy > map_iterator (const ItTy &I, FuncTy F)
 
template<class T , std::size_t N>
LLVM_CONSTEXPR size_t array_lengthof (T(&)[N])
 Find the length of an array. More...
 
template<typename T >
int array_pod_sort_comparator (const void *P1, const void *P2)
 Adapt std::less<T> for array_pod_sort. More...
 
template<class IteratorTy >
void array_pod_sort (IteratorTy Start, IteratorTy End)
 
template<class IteratorTy >
void array_pod_sort (IteratorTy Start, IteratorTy End, int(*Compare)(const typename std::iterator_traits< IteratorTy >::value_type *, const typename std::iterator_traits< IteratorTy >::value_type *))
 
template<typename Container >
void DeleteContainerPointers (Container &C)
 
template<typename Container >
void DeleteContainerSeconds (Container &C)
 
template<class T >
std::enable_if<!std::is_array
< T >::value, std::unique_ptr
< T > >::type 
make_unique ()
 
template<class T , class Arg1 >
std::enable_if<!std::is_array
< T >::value, std::unique_ptr
< T > >::type 
make_unique (Arg1 &&arg1)
 
template<class T , class Arg1 , class Arg2 >
std::enable_if<!std::is_array
< T >::value, std::unique_ptr
< T > >::type 
make_unique (Arg1 &&arg1, Arg2 &&arg2)
 
template<class T , class Arg1 , class Arg2 , class Arg3 >
std::enable_if<!std::is_array
< T >::value, std::unique_ptr
< T > >::type 
make_unique (Arg1 &&arg1, Arg2 &&arg2, Arg3 &&arg3)
 
template<class T , class Arg1 , class Arg2 , class Arg3 , class Arg4 >
std::enable_if<!std::is_array
< T >::value, std::unique_ptr
< T > >::type 
make_unique (Arg1 &&arg1, Arg2 &&arg2, Arg3 &&arg3, Arg4 &&arg4)
 
template<class T , class Arg1 , class Arg2 , class Arg3 , class Arg4 , class Arg5 >
std::enable_if<!std::is_array
< T >::value, std::unique_ptr
< T > >::type 
make_unique (Arg1 &&arg1, Arg2 &&arg2, Arg3 &&arg3, Arg4 &&arg4, Arg5 &&arg5)
 
template<class T , class Arg1 , class Arg2 , class Arg3 , class Arg4 , class Arg5 , class Arg6 >
std::enable_if<!std::is_array
< T >::value, std::unique_ptr
< T > >::type 
make_unique (Arg1 &&arg1, Arg2 &&arg2, Arg3 &&arg3, Arg4 &&arg4, Arg5 &&arg5, Arg6 &&arg6)
 
template<class T , class Arg1 , class Arg2 , class Arg3 , class Arg4 , class Arg5 , class Arg6 , class Arg7 >
std::enable_if<!std::is_array
< T >::value, std::unique_ptr
< T > >::type 
make_unique (Arg1 &&arg1, Arg2 &&arg2, Arg3 &&arg3, Arg4 &&arg4, Arg5 &&arg5, Arg6 &&arg6, Arg7 &&arg7)
 
template<class T , class Arg1 , class Arg2 , class Arg3 , class Arg4 , class Arg5 , class Arg6 , class Arg7 , class Arg8 >
std::enable_if<!std::is_array
< T >::value, std::unique_ptr
< T > >::type 
make_unique (Arg1 &&arg1, Arg2 &&arg2, Arg3 &&arg3, Arg4 &&arg4, Arg5 &&arg5, Arg6 &&arg6, Arg7 &&arg7, Arg8 &&arg8)
 
template<class T , class Arg1 , class Arg2 , class Arg3 , class Arg4 , class Arg5 , class Arg6 , class Arg7 , class Arg8 , class Arg9 >
std::enable_if<!std::is_array
< T >::value, std::unique_ptr
< T > >::type 
make_unique (Arg1 &&arg1, Arg2 &&arg2, Arg3 &&arg3, Arg4 &&arg4, Arg5 &&arg5, Arg6 &&arg6, Arg7 &&arg7, Arg8 &&arg8, Arg9 &&arg9)
 
template<class T , class Arg1 , class Arg2 , class Arg3 , class Arg4 , class Arg5 , class Arg6 , class Arg7 , class Arg8 , class Arg9 , class Arg10 >
std::enable_if<!std::is_array
< T >::value, std::unique_ptr
< T > >::type 
make_unique (Arg1 &&arg1, Arg2 &&arg2, Arg3 &&arg3, Arg4 &&arg4, Arg5 &&arg5, Arg6 &&arg6, Arg7 &&arg7, Arg8 &&arg8, Arg9 &&arg9, Arg10 &&arg10)
 
template<class T >
std::enable_if< std::is_array
< T >::value &&std::extent< T >
::value==0, std::unique_ptr< T >
>::type 
make_unique (size_t n)
 
static char hexdigit (unsigned X, bool LowerCase=false)
 
static StringRef toStringRef (bool B)
 Construct a string ref from a boolean. More...
 
static unsigned hexDigitValue (char C)
 
template<typename IntTy >
static char * utohex_buffer (IntTy X, char *BufferEnd, bool LowerCase=false)
 
static std::string utohexstr (uint64_t X, bool LowerCase=false)
 
static std::string utostr_32 (uint32_t X, bool isNeg=false)
 
static std::string utostr (uint64_t X, bool isNeg=false)
 
static std::string itostr (int64_t X)
 
StringRef::size_type StrInStrNoCase (StringRef s1, StringRef s2)
 
std::pair< StringRef, StringRefgetToken (StringRef Source, StringRef Delimiters=" \t\n\v\f\r")
 
void SplitString (StringRef Source, SmallVectorImpl< StringRef > &OutFragments, StringRef Delimiters=" \t\n\v\f\r")
 
static unsigned HashString (StringRef Str, unsigned Result=0)
 
static StringRef getOrdinalSuffix (unsigned Val)
 Returns the English suffix for an ordinal integer (-st, -nd, -rd, -th). More...
 
template<typename IteratorT >
std::string join_impl (IteratorT Begin, IteratorT End, StringRef Separator, std::input_iterator_tag)
 
template<typename IteratorT >
std::string join_impl (IteratorT Begin, IteratorT End, StringRef Separator, std::forward_iterator_tag)
 
template<typename IteratorT >
std::string join (IteratorT Begin, IteratorT End, StringRef Separator)
 
bool getAsUnsignedInteger (StringRef Str, unsigned Radix, unsigned long long &Result)
 Helper functions for StringRef::getAsInteger. More...
 
bool getAsSignedInteger (StringRef Str, unsigned Radix, long long &Result)
 
hash_code hash_value (StringRef S)
 Compute a hash_code for a StringRef. More...
 
bool isNoAliasCall (const Value *V)
 
bool isNoAliasArgument (const Value *V)
 
bool isIdentifiedObject (const Value *V)
 
bool isIdentifiedFunctionLocal (const Value *V)
 
raw_ostreamoperator<< (raw_ostream &OS, const AliasSet &AS)
 
raw_ostreamoperator<< (raw_ostream &OS, const AliasSetTracker &AST)
 
ModulePasscreateCallGraphViewerPass ()
 
ModulePasscreateCallGraphPrinterPass ()
 
bool PointerMayBeCaptured (const Value *V, bool ReturnCaptures, bool StoreCaptures)
 
bool PointerMayBeCapturedBefore (const Value *V, bool ReturnCaptures, bool StoreCaptures, const Instruction *I, DominatorTree *DT, bool IncludeI=false)
 
void PointerMayBeCaptured (const Value *V, CaptureTracker *Tracker)
 
void FindFunctionBackedges (const Function &F, SmallVectorImpl< std::pair< const BasicBlock *, const BasicBlock * > > &Result)
 
unsigned GetSuccessorNumber (BasicBlock *BB, BasicBlock *Succ)
 
bool isCriticalEdge (const TerminatorInst *TI, unsigned SuccNum, bool AllowIdenticalEdges=false)
 
bool isPotentiallyReachable (const Instruction *From, const Instruction *To, const DominatorTree *DT=nullptr, const LoopInfo *LI=nullptr)
 Determine whether instruction 'To' is reachable from 'From', returning true if uncertain. More...
 
bool isPotentiallyReachable (const BasicBlock *From, const BasicBlock *To, const DominatorTree *DT=nullptr, const LoopInfo *LI=nullptr)
 Determine whether block 'To' is reachable from 'From', returning true if uncertain. More...
 
FunctionPasscreateCFGPrinterPass ()
 
FunctionPasscreateCFGOnlyPrinterPass ()
 
template<typename CGSCCPassT >
ModuleToPostOrderCGSCCPassAdaptor
< CGSCCPassT > 
createModuleToPostOrderCGSCCPassAdaptor (CGSCCPassT Pass)
 A function to deduce a function pass type and wrap it in the templated adaptor. More...
 
template<typename FunctionPassT >
CGSCCToFunctionPassAdaptor
< FunctionPassT > 
createCGSCCToFunctionPassAdaptor (FunctionPassT Pass)
 A function to deduce a function pass type and wrap it in the templated adaptor. More...
 
bool callIsSmall (ImmutableCallSite CS)
 Check whether a call will lower to something small. More...
 
ConstantConstantFoldInstruction (Instruction *I, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr)
 
ConstantConstantFoldConstantExpression (const ConstantExpr *CE, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr)
 
ConstantConstantFoldInstOperands (unsigned Opcode, Type *DestTy, ArrayRef< Constant * > Ops, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr)
 
ConstantConstantFoldCompareInstOperands (unsigned Predicate, Constant *LHS, Constant *RHS, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr)
 
ConstantConstantFoldInsertValueInstruction (Constant *Agg, Constant *Val, ArrayRef< unsigned > Idxs)
 
ConstantConstantFoldLoadFromConstPtr (Constant *C, const DataLayout *TD=nullptr)
 
ConstantConstantFoldLoadThroughGEPConstantExpr (Constant *C, ConstantExpr *CE)
 
ConstantConstantFoldLoadThroughGEPIndices (Constant *C, ArrayRef< Constant * > Indices)
 
bool canConstantFoldCallTo (const Function *F)
 Return true if it's even possible to fold a call to the specified function. More...
 
ConstantConstantFoldCall (Function *F, ArrayRef< Constant * > Operands, const TargetLibraryInfo *TLI=nullptr)
 
constant_iterator constant_begin (const Function *F)
 
constant_iterator constant_end (const Function *F)
 
FunctionPasscreateDependenceAnalysisPass ()
 
 EXTERN_TEMPLATE_INSTANTIATION (class DominanceFrontierBase< BasicBlock >)
 
 EXTERN_TEMPLATE_INSTANTIATION (class ForwardDominanceFrontierBase< BasicBlock >)
 
FunctionPasscreateDomPrinterPass ()
 
FunctionPasscreateDomOnlyPrinterPass ()
 
FunctionPasscreateDomViewerPass ()
 
FunctionPasscreateDomOnlyViewerPass ()
 
FunctionPasscreatePostDomPrinterPass ()
 
FunctionPasscreatePostDomOnlyPrinterPass ()
 
FunctionPasscreatePostDomViewerPass ()
 
FunctionPasscreatePostDomOnlyViewerPass ()
 
ValueSimplifyAddInst (Value *LHS, Value *RHS, bool isNSW, bool isNUW, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifySubInst (Value *LHS, Value *RHS, bool isNSW, bool isNUW, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyFAddInst (Value *LHS, Value *RHS, FastMathFlags FMF, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyFSubInst (Value *LHS, Value *RHS, FastMathFlags FMF, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyFMulInst (Value *LHS, Value *RHS, FastMathFlags FMF, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyMulInst (Value *LHS, Value *RHS, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifySDivInst (Value *LHS, Value *RHS, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyUDivInst (Value *LHS, Value *RHS, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyFDivInst (Value *LHS, Value *RHS, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifySRemInst (Value *LHS, Value *RHS, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyURemInst (Value *LHS, Value *RHS, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyFRemInst (Value *LHS, Value *RHS, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyShlInst (Value *Op0, Value *Op1, bool isNSW, bool isNUW, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyLShrInst (Value *Op0, Value *Op1, bool isExact, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyAShrInst (Value *Op0, Value *Op1, bool isExact, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyAndInst (Value *LHS, Value *RHS, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyOrInst (Value *LHS, Value *RHS, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyXorInst (Value *LHS, Value *RHS, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyICmpInst (unsigned Predicate, Value *LHS, Value *RHS, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, Instruction *CxtI=nullptr)
 
ValueSimplifyFCmpInst (unsigned Predicate, Value *LHS, Value *RHS, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifySelectInst (Value *Cond, Value *TrueVal, Value *FalseVal, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyGEPInst (ArrayRef< Value * > Ops, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyInsertValueInst (Value *Agg, Value *Val, ArrayRef< unsigned > Idxs, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyTruncInst (Value *Op, Type *Ty, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyCmpInst (unsigned Predicate, Value *LHS, Value *RHS, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyBinOp (unsigned Opcode, Value *LHS, Value *RHS, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 
ValueSimplifyCall (Value *V, User::op_iterator ArgBegin, User::op_iterator ArgEnd, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 Given a function and iterators over arguments, see if we can fold the result. More...
 
ValueSimplifyCall (Value *V, ArrayRef< Value * > Args, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr)
 Given a function and set of arguments, see if we can fold the result. More...
 
ValueSimplifyInstruction (Instruction *I, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr)
 
bool replaceAndRecursivelySimplify (Instruction *I, Value *SimpleV, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr)
 Replace all uses of 'I' with 'SimpleV' and simplify the uses recursively. More...
 
bool recursivelySimplifyInstruction (Instruction *I, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr)
 Recursively attempt to simplify an instruction. More...
 
Interval::succ_iterator succ_begin (Interval *I)
 
Interval::succ_iterator succ_end (Interval *I)
 
Interval::pred_iterator pred_begin (Interval *I)
 
Interval::pred_iterator pred_end (Interval *I)
 
BasicBlockgetNodeHeader (BasicBlock *BB)
 
BasicBlockgetNodeHeader (Interval *I)
 
BasicBlockgetSourceGraphNode (Function *, BasicBlock *BB)
 
IntervalgetSourceGraphNode (IntervalPartition *IP, BasicBlock *BB)
 
void addNodeToInterval (Interval *Int, BasicBlock *BB)
 
void addNodeToInterval (Interval *Int, Interval *I)
 
function_interval_iterator intervals_begin (Function *F, bool DeleteInts=true)
 
function_interval_iterator intervals_end (Function *)
 
interval_part_interval_iterator intervals_begin (IntervalPartition &IP, bool DeleteIntervals=true)
 
interval_part_interval_iterator intervals_end (IntervalPartition &IP)
 
PasscreateIVUsersPass ()
 
ModulePasscreateJumpInstrTableInfoPass (unsigned Bound)
 
FunctionPasscreateLintPass ()
 Create a lint pass. More...
 
void lintModule (const Module &M)
 Check a module. More...
 
void lintFunction (const Function &F)
 
bool isSafeToLoadUnconditionally (Value *V, Instruction *ScanFrom, unsigned Align, const DataLayout *TD=nullptr)
 Check if executing a load of this pointer value cannot trap. More...
 
ValueFindAvailableLoadedValue (Value *Ptr, BasicBlock *ScanBB, BasicBlock::iterator &ScanFrom, unsigned MaxInstsToScan=6, AliasAnalysis *AA=nullptr, AAMDNodes *AATags=nullptr)
 Scan the ScanBB block backwards to see if we have the value at the memory address *Ptr locally available within a small number of instructions. More...
 
template<typename T >
void RemoveFromVector (std::vector< T * > &V, T *N)
 
template<class BlockT , class LoopT >
raw_ostreamoperator<< (raw_ostream &OS, const LoopBase< BlockT, LoopT > &Loop)
 
template<class BlockT , class LoopT >
static void discoverAndMapSubloop (LoopT *L, ArrayRef< BlockT * > Backedges, LoopInfoBase< BlockT, LoopT > *LI, DominatorTreeBase< BlockT > &DomTree)
 
bool isAllocationFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false)
 Tests if a value is a call or invoke to a library function that allocates or reallocates memory (either malloc, calloc, realloc, or strdup like). More...
 
bool isNoAliasFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false)
 Tests if a value is a call or invoke to a function that returns a NoAlias pointer (including malloc/calloc/realloc/strdup-like functions). More...
 
bool isMallocLikeFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false)
 Tests if a value is a call or invoke to a library function that allocates uninitialized memory (such as malloc). More...
 
bool isCallocLikeFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false)
 Tests if a value is a call or invoke to a library function that allocates zero-filled memory (such as calloc). More...
 
bool isAllocLikeFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false)
 Tests if a value is a call or invoke to a library function that allocates memory (either malloc, calloc, or strdup like). More...
 
bool isReallocLikeFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false)
 Tests if a value is a call or invoke to a library function that reallocates memory (such as realloc). More...
 
bool isOperatorNewLikeFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false)
 Tests if a value is a call or invoke to a library function that allocates memory and never returns null (such as operator new). More...
 
const CallInstextractMallocCall (const Value *I, const TargetLibraryInfo *TLI)
 
static CallInstextractMallocCall (Value *I, const TargetLibraryInfo *TLI)
 
const CallInstisArrayMalloc (const Value *I, const DataLayout *DL, const TargetLibraryInfo *TLI)
 
PointerTypegetMallocType (const CallInst *CI, const TargetLibraryInfo *TLI)
 
TypegetMallocAllocatedType (const CallInst *CI, const TargetLibraryInfo *TLI)
 
ValuegetMallocArraySize (CallInst *CI, const DataLayout *DL, const TargetLibraryInfo *TLI, bool LookThroughSExt=false)
 
const CallInstextractCallocCall (const Value *I, const TargetLibraryInfo *TLI)
 
static CallInstextractCallocCall (Value *I, const TargetLibraryInfo *TLI)
 
const CallInstisFreeCall (const Value *I, const TargetLibraryInfo *TLI)
 isFreeCall - Returns non-null if the value is a call to the builtin free() More...
 
static CallInstisFreeCall (Value *I, const TargetLibraryInfo *TLI)
 
bool getObjectSize (const Value *Ptr, uint64_t &Size, const DataLayout *DL, const TargetLibraryInfo *TLI, bool RoundToAlign=false)
 Compute the size of the object pointed by Ptr. Returns true and the object size in Size if successful, and false otherwise. In this context, by object we mean the region of memory starting at Ptr to the end of the underlying object pointed to by Ptr. If RoundToAlign is true, then Size is rounded up to the aligment of allocas, byval arguments, and global variables. More...
 
PasscreateGlobalsModRefPass ()
 
PasscreateAliasDebugger ()
 
ModulePasscreateAliasAnalysisCounterPass ()
 
FunctionPasscreateAAEvalPass ()
 
ImmutablePasscreateNoAAPass ()
 
ImmutablePasscreateBasicAliasAnalysisPass ()
 
ImmutablePasscreateCFLAliasAnalysisPass ()
 
FunctionPasscreateLibCallAliasAnalysisPass (LibCallInfo *LCI)
 
FunctionPasscreateScalarEvolutionAliasAnalysisPass ()
 
ImmutablePasscreateTypeBasedAliasAnalysisPass ()
 
ImmutablePasscreateScopedNoAliasAAPass ()
 
ImmutablePasscreateObjCARCAliasAnalysisPass ()
 
FunctionPasscreatePAEvalPass ()
 
FunctionPasscreateLazyValueInfoPass ()
 
FunctionPasscreateCostModelAnalysisPass ()
 
FunctionPasscreateDelinearizationPass ()
 
FunctionPasscreateInstCountPass ()
 
FunctionPasscreateRegionInfoPass ()
 
ModulePasscreateModuleDebugInfoPrinterPass ()
 
FunctionPasscreateMemDepPrinter ()
 
ImmutablePasscreateJumpInstrTableInfoPass ()
 
FunctionPasscreatePostDomTree ()
 
template<class Tr >
raw_ostreamoperator<< (raw_ostream &OS, const RegionNodeBase< Tr > &Node)
 Print a RegionNode. More...
 
 EXTERN_TEMPLATE_INSTANTIATION (class RegionBase< RegionTraits< Function >>)
 
 EXTERN_TEMPLATE_INSTANTIATION (class RegionNodeBase< RegionTraits< Function >>)
 
 EXTERN_TEMPLATE_INSTANTIATION (class RegionInfoBase< RegionTraits< Function >>)
 
template<class NodeType , class BlockT , class RegionT >
RNSuccIterator< NodeType,
BlockT, RegionT > 
succ_begin (NodeType *Node)
 
template<class NodeType , class BlockT , class RegionT >
RNSuccIterator< NodeType,
BlockT, RegionT > 
succ_end (NodeType *Node)
 
 RegionNodeGraphTraits (RegionNode, BasicBlock, Region)
 
 RegionGraphTraits (Region, RegionNode)
 
FunctionPasscreateRegionViewerPass ()
 
FunctionPasscreateRegionOnlyViewerPass ()
 
FunctionPasscreateRegionPrinterPass ()
 
FunctionPasscreateRegionOnlyPrinterPass ()
 
raw_ostreamoperator<< (raw_ostream &OS, const SCEV &S)
 
bool isSafeToExpand (const SCEV *S, ScalarEvolution &SE)
 
template<typename SV >
void visitAll (const SCEV *Root, SV &Visitor)
 Use SCEVTraversal to visit all nodes in the given expression tree. More...
 
static const SCEVapply (const SCEV *Scev, LoopToScevMapT &Map, ScalarEvolution &SE)
 Applies the Map (Loop -> SCEV) to the given Scev. More...
 
const SCEVTransformForPostIncUse (TransformKind Kind, const SCEV *S, Instruction *User, Value *OperandValToReplace, PostIncLoopSet &Loops, ScalarEvolution &SE, DominatorTree &DT)
 
ImmutablePasscreateNoTargetTransformInfoPass ()
 Create the base case instance of a pass in the TTI analysis group. More...
 
void computeKnownBits (Value *V, APInt &KnownZero, APInt &KnownOne, const DataLayout *TD=nullptr, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr)
 
void computeKnownBitsFromRangeMetadata (const MDNode &Ranges, APInt &KnownZero)
 
void ComputeSignBit (Value *V, bool &KnownZero, bool &KnownOne, const DataLayout *TD=nullptr, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr)
 
bool isKnownToBeAPowerOfTwo (Value *V, bool OrZero=false, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr)
 
bool isKnownNonZero (Value *V, const DataLayout *TD=nullptr, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr)
 
bool MaskedValueIsZero (Value *V, const APInt &Mask, const DataLayout *TD=nullptr, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr)
 
unsigned ComputeNumSignBits (Value *Op, const DataLayout *TD=nullptr, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr)
 
bool ComputeMultiple (Value *V, unsigned Base, Value *&Multiple, bool LookThroughSExt=false, unsigned Depth=0)
 
bool CannotBeNegativeZero (const Value *V, unsigned Depth=0)
 
ValueisBytewiseValue (Value *V)
 
ValueFindInsertedValue (Value *V, ArrayRef< unsigned > idx_range, Instruction *InsertBefore=nullptr)
 
ValueGetPointerBaseWithConstantOffset (Value *Ptr, int64_t &Offset, const DataLayout *TD)
 
static const ValueGetPointerBaseWithConstantOffset (const Value *Ptr, int64_t &Offset, const DataLayout *TD)
 
bool getConstantStringInfo (const Value *V, StringRef &Str, uint64_t Offset=0, bool TrimAtNul=true)
 
uint64_t GetStringLength (Value *V)
 
ValueGetUnderlyingObject (Value *V, const DataLayout *TD=nullptr, unsigned MaxLookup=6)
 
static const ValueGetUnderlyingObject (const Value *V, const DataLayout *TD=nullptr, unsigned MaxLookup=6)
 
void GetUnderlyingObjects (Value *V, SmallVectorImpl< Value * > &Objects, const DataLayout *TD=nullptr, unsigned MaxLookup=6)
 
bool onlyUsedByLifetimeMarkers (const Value *V)
 Return true if the only users of this pointer are lifetime markers. More...
 
bool isSafeToSpeculativelyExecute (const Value *V, const DataLayout *TD=nullptr)
 
bool isKnownNonNull (const Value *V, const TargetLibraryInfo *TLI=nullptr)
 Return true if we know that the specified value is never null. More...
 
bool isValidAssumeForContext (const Instruction *I, const Instruction *CxtI, const DataLayout *DL=nullptr, const DominatorTree *DT=nullptr)
 
OverflowResult computeOverflowForUnsignedMul (Value *LHS, Value *RHS, const DataLayout *DL, AssumptionCache *AC, const Instruction *CxtI, const DominatorTree *DT)
 
OverflowResult computeOverflowForUnsignedAdd (Value *LHS, Value *RHS, const DataLayout *DL, AssumptionCache *AC, const Instruction *CxtI, const DominatorTree *DT)
 
std::unique_ptr< ModuleparseAssemblyFile (StringRef Filename, SMDiagnostic &Error, LLVMContext &Context)
 Parse LLVM Assembly from a file. More...
 
std::unique_ptr< ModuleparseAssemblyString (StringRef AsmString, SMDiagnostic &Error, LLVMContext &Context)
 Parse LLVM Assembly from a string. More...
 
std::unique_ptr< ModuleparseAssembly (MemoryBufferRef F, SMDiagnostic &Err, LLVMContext &Context)
 Parse LLVM Assembly from a MemoryBuffer. More...
 
bool parseAssemblyInto (MemoryBufferRef F, Module &M, SMDiagnostic &Err)
 
ModulePasscreateBitcodeWriterPass (raw_ostream &Str)
 Create and return a pass that writes the module to the specified ostream. Note that this pass is designed for use with the legacy pass manager. More...
 
ErrorOr< Module * > getLazyBitcodeModule (std::unique_ptr< MemoryBuffer > &&Buffer, LLVMContext &Context, DiagnosticHandlerFunction DiagnosticHandler=nullptr)
 
ErrorOr< std::unique_ptr
< Module > > 
getStreamedBitcodeModule (StringRef Name, DataStreamer *Streamer, LLVMContext &Context, DiagnosticHandlerFunction DiagnosticHandler=nullptr)
 
std::string getBitcodeTargetTriple (MemoryBufferRef Buffer, LLVMContext &Context, DiagnosticHandlerFunction DiagnosticHandler=nullptr)
 
ErrorOr< Module * > parseBitcodeFile (MemoryBufferRef Buffer, LLVMContext &Context, DiagnosticHandlerFunction DiagnosticHandler=nullptr)
 Read the specified bitcode file, returning the module. More...
 
void WriteBitcodeToFile (const Module *M, raw_ostream &Out)
 
bool isBitcodeWrapper (const unsigned char *BufPtr, const unsigned char *BufEnd)
 
bool isRawBitcode (const unsigned char *BufPtr, const unsigned char *BufEnd)
 
bool isBitcode (const unsigned char *BufPtr, const unsigned char *BufEnd)
 
bool SkipBitcodeWrapperHeader (const unsigned char *&BufPtr, const unsigned char *&BufEnd, bool VerifyBufferSize)
 
const std::error_categoryBitcodeErrorCategory ()
 
std::error_code make_error_code (BitcodeError E)
 
unsigned ComputeLinearIndex (Type *Ty, const unsigned *Indices, const unsigned *IndicesEnd, unsigned CurIndex=0)
 Compute the linearized index of a member in a nested aggregate/struct/array. More...
 
unsigned ComputeLinearIndex (Type *Ty, ArrayRef< unsigned > Indices, unsigned CurIndex=0)
 
void ComputeValueVTs (const TargetLowering &TLI, Type *Ty, SmallVectorImpl< EVT > &ValueVTs, SmallVectorImpl< uint64_t > *Offsets=nullptr, uint64_t StartingOffset=0)
 
GlobalValueExtractTypeInfo (Value *V)
 ExtractTypeInfo - Returns the type info, possibly bitcast, encoded in V. More...
 
bool hasInlineAsmMemConstraint (InlineAsm::ConstraintInfoVector &CInfos, const TargetLowering &TLI)
 
ISD::CondCode getFCmpCondCode (FCmpInst::Predicate Pred)
 
ISD::CondCode getFCmpCodeWithoutNaN (ISD::CondCode CC)
 
ISD::CondCode getICmpCondCode (ICmpInst::Predicate Pred)
 
bool isInTailCallPosition (ImmutableCallSite CS, const TargetMachine &TM)
 
bool returnTypeIsEligibleForTailCall (const Function *F, const Instruction *I, const ReturnInst *Ret, const TargetLoweringBase &TLI)
 
bool canBeOmittedFromSymbolTable (const GlobalValue *GV)
 
static float normalizeSpillWeight (float UseDefFreq, unsigned Size, unsigned NumInstr)
 Normalize the spill weight of a live interval. More...
 
void calculateSpillWeightsAndHints (LiveIntervals &LIS, MachineFunction &MF, const MachineLoopInfo &MLI, const MachineBlockFrequencyInfo &MBFI, VirtRegAuxInfo::NormalizingFn norm=normalizeSpillWeight)
 Compute spill weights and allocation hints for all virtual register live intervals. More...
 
ModulePasscreateForwardControlFlowIntegrityPass (JumpTable::JumpTableType JTT, CFIntegrity CFIType, bool CFIEnforcing, StringRef CFIFuncName)
 
void ComputeUsesVAFloatArgument (const CallInst &I, MachineModuleInfo *MMI)
 
void AddCatchInfo (const CallInst &I, MachineModuleInfo *MMI, MachineBasicBlock *MBB)
 
void AddLandingPadInfo (const LandingPadInst &I, MachineModuleInfo &MMI, MachineBasicBlock *MBB)
 
void linkOcamlGC ()
 Creates an ocaml-compatible garbage collector. More...
 
void linkOcamlGCPrinter ()
 Creates an ocaml-compatible metadata printer. More...
 
void linkErlangGC ()
 Creates an erlang-compatible garbage collector. More...
 
void linkErlangGCPrinter ()
 Creates an erlang-compatible metadata printer. More...
 
void linkShadowStackGC ()
 
void linkStatepointExampleGC ()
 
ModulePasscreateJumpInstrTablesPass (JumpTable::JumpTableType JTT)
 Creates a JumpInstrTables pass for the given type of jump table. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const LiveRange &LR)
 
raw_ostreamoperator<< (raw_ostream &OS, const LiveInterval &LI)
 
raw_ostreamoperator<< (raw_ostream &OS, const LiveRange::Segment &S)
 
bool operator< (SlotIndex V, const LiveRange::Segment &S)
 
bool operator< (const LiveRange::Segment &S, SlotIndex V)
 
raw_ostreamoperator<< (raw_ostream &OS, const LiveRangeUpdater &X)
 
bool overlap (const LiveInterval::Segment &VRSeg, const IntervalMap< SlotIndex, LiveInterval * >::const_iterator &LUSeg)
 Compare a live virtual register segment to a LiveIntervalUnion segment. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const LivePhysRegs &LR)
 
raw_ostreamoperator<< (raw_ostream &OS, const MachineBasicBlock &MBB)
 
raw_ostreamoperator<< (raw_ostream &OS, const MachineConstantPoolValue &V)
 
 EXTERN_TEMPLATE_INSTANTIATION (class DomTreeNodeBase< MachineBasicBlock >)
 
 EXTERN_TEMPLATE_INSTANTIATION (class DominatorTreeBase< MachineBasicBlock >)
 
raw_ostreamoperator<< (raw_ostream &OS, const MachineInstr &MI)
 
MachineInstrBuilder BuildMI (MachineFunction &MF, DebugLoc DL, const MCInstrDesc &MCID)
 
MachineInstrBuilder BuildMI (MachineFunction &MF, DebugLoc DL, const MCInstrDesc &MCID, unsigned DestReg)
 
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineBasicBlock::iterator I, DebugLoc DL, const MCInstrDesc &MCID, unsigned DestReg)
 
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineBasicBlock::instr_iterator I, DebugLoc DL, const MCInstrDesc &MCID, unsigned DestReg)
 
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineInstr *I, DebugLoc DL, const MCInstrDesc &MCID, unsigned DestReg)
 
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineBasicBlock::iterator I, DebugLoc DL, const MCInstrDesc &MCID)
 
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineBasicBlock::instr_iterator I, DebugLoc DL, const MCInstrDesc &MCID)
 
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineInstr *I, DebugLoc DL, const MCInstrDesc &MCID)
 
MachineInstrBuilder BuildMI (MachineBasicBlock *BB, DebugLoc DL, const MCInstrDesc &MCID)
 
MachineInstrBuilder BuildMI (MachineBasicBlock *BB, DebugLoc DL, const MCInstrDesc &MCID, unsigned DestReg)
 
MachineInstrBuilder BuildMI (MachineFunction &MF, DebugLoc DL, const MCInstrDesc &MCID, bool IsIndirect, unsigned Reg, unsigned Offset, const MDNode *Variable, const MDNode *Expr)
 
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineBasicBlock::iterator I, DebugLoc DL, const MCInstrDesc &MCID, bool IsIndirect, unsigned Reg, unsigned Offset, const MDNode *Variable, const MDNode *Expr)
 
unsigned getDefRegState (bool B)
 
unsigned getImplRegState (bool B)
 
unsigned getKillRegState (bool B)
 
unsigned getDeadRegState (bool B)
 
unsigned getUndefRegState (bool B)
 
unsigned getInternalReadRegState (bool B)
 
unsigned getDebugRegState (bool B)
 
void finalizeBundle (MachineBasicBlock &MBB, MachineBasicBlock::instr_iterator FirstMI, MachineBasicBlock::instr_iterator LastMI)
 
MachineBasicBlock::instr_iterator finalizeBundle (MachineBasicBlock &MBB, MachineBasicBlock::instr_iterator FirstMI)
 
bool finalizeBundles (MachineFunction &MF)
 
MachineInstrgetBundleStart (MachineInstr *MI)
 
const MachineInstrgetBundleStart (const MachineInstr *MI)
 
MachineBasicBlock::instr_iterator getBundleEnd (MachineInstr *MI)
 Return an iterator pointing beyond the bundle containing MI. More...
 
MachineBasicBlock::const_instr_iterator getBundleEnd (const MachineInstr *MI)
 Return an iterator pointing beyond the bundle containing MI. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const MachineMemOperand &MRO)
 
raw_ostreamoperator<< (raw_ostream &OS, const MachineOperand &MO)
 
hash_code hash_value (const MachineOperand &MO)
 
 RegionNodeGraphTraits (MachineRegionNode, MachineBasicBlock, MachineRegion)
 
 RegionGraphTraits (MachineRegion, MachineRegionNode)
 
 EXTERN_TEMPLATE_INSTANTIATION (class RegionBase< RegionTraits< MachineFunction >>)
 
 EXTERN_TEMPLATE_INSTANTIATION (class RegionNodeBase< RegionTraits< MachineFunction >>)
 
 EXTERN_TEMPLATE_INSTANTIATION (class RegionInfoBase< RegionTraits< MachineFunction >>)
 
raw_ostreamoperator<< (raw_ostream &OS, const MachineTraceMetrics::Trace &Tr)
 
raw_ostreamoperator<< (raw_ostream &OS, const MachineTraceMetrics::Ensemble &En)
 
FunctionPasscreateAtomicExpandPass (const TargetMachine *TM)
 
ImmutablePasscreateBasicTargetTransformInfoPass (const TargetMachine *TM)
 Create a basic TargetTransformInfo analysis pass. More...
 
FunctionPasscreateUnreachableBlockEliminationPass ()
 
MachineFunctionPasscreateMachineFunctionPrinterPass (raw_ostream &OS, const std::string &Banner="")
 
FunctionPasscreateCodeGenPreparePass (const TargetMachine *TM=nullptr)
 
FunctionPasscreateFastRegisterAllocator ()
 
FunctionPasscreateBasicRegisterAllocator ()
 
FunctionPasscreateGreedyRegisterAllocator ()
 
FunctionPasscreateDefaultPBQPRegisterAllocator ()
 
FunctionPasscreateGCLoweringPass ()
 
FunctionPasscreateGCInfoPrinter (raw_ostream &OS)
 
FunctionPasscreateStackProtectorPass (const TargetMachine *TM)
 
FunctionPasscreateMachineVerifierPass (const std::string &Banner)
 
FunctionPasscreateDwarfEHPass (const TargetMachine *TM)
 
FunctionPasscreateSjLjEHPreparePass (const TargetMachine *TM)
 
FunctionPasscreateExecutionDependencyFixPass (const TargetRegisterClass *RC)
 
ModulePasscreateJumpInstrTablesPass ()
 createJumpInstrTables - This pass creates jump-instruction tables. More...
 
ModulePasscreateForwardControlFlowIntegrityPass ()
 
FunctionPasscreatePBQPRegisterAllocator (char *customPassID=nullptr)
 Create a PBQP register allocator instance. More...
 
void dumpRegSetPressure (ArrayRef< unsigned > SetPressure, const TargetRegisterInfo *TRI)
 
raw_ostreamoperator<< (raw_ostream &OS, const ILPValue &Val)
 
ScheduleDAGSDNodescreateBURRListDAGScheduler (SelectionDAGISel *IS, CodeGenOpt::Level OptLevel)
 
ScheduleDAGSDNodescreateSourceListDAGScheduler (SelectionDAGISel *IS, CodeGenOpt::Level OptLevel)
 
ScheduleDAGSDNodescreateHybridListDAGScheduler (SelectionDAGISel *IS, CodeGenOpt::Level)
 
ScheduleDAGSDNodescreateILPListDAGScheduler (SelectionDAGISel *IS, CodeGenOpt::Level)
 
ScheduleDAGSDNodescreateFastDAGScheduler (SelectionDAGISel *IS, CodeGenOpt::Level OptLevel)
 
ScheduleDAGSDNodescreateVLIWDAGScheduler (SelectionDAGISel *IS, CodeGenOpt::Level OptLevel)
 createVLIWDAGScheduler - This creates a top-down list scheduler. More...
 
ScheduleDAGSDNodescreateDefaultScheduler (SelectionDAGISel *IS, CodeGenOpt::Level OptLevel)
 
ScheduleDAGSDNodescreateDAGLinearizer (SelectionDAGISel *IS, CodeGenOpt::Level OptLevel)
 
void checkForCycles (const SelectionDAG *DAG, bool force=false)
 
static bool isBinOpWithFlags (unsigned Opcode)
 
void checkForCycles (const SDNode *N, const SelectionDAG *DAG=nullptr, bool force=false)
 
raw_ostreamoperator<< (raw_ostream &os, SlotIndex li)
 
bool operator< (SlotIndex V, const IdxMBBPair &IM)
 
bool operator< (const IdxMBBPair &IM, SlotIndex V)
 
raw_ostreamoperator<< (raw_ostream &OS, const VirtRegMap &VRM)
 
GenericValue PTOGV (void *P)
 
void * GVTOP (const GenericValue &GV)
 
void initializeCore (PassRegistry &)
 
void initializeTransformUtils (PassRegistry &)
 
void initializeScalarOpts (PassRegistry &)
 
void initializeObjCARCOpts (PassRegistry &)
 
void initializeVectorization (PassRegistry &)
 
void initializeInstCombine (PassRegistry &)
 
void initializeIPO (PassRegistry &)
 initializeIPO - Initialize all passes linked into the IPO library. More...
 
void initializeInstrumentation (PassRegistry &)
 
void initializeAnalysis (PassRegistry &)
 initializeAnalysis - Initialize all passes linked into the Analysis library. More...
 
void initializeIPA (PassRegistry &)
 initializeIPA - Initialize all passes linked into the IPA library. More...
 
void initializeCodeGen (PassRegistry &)
 initializeCodeGen - Initialize all passes linked into the CodeGen library. More...
 
void initializeTarget (PassRegistry &)
 initializeCodeGen - Initialize all passes linked into the CodeGen library. More...
 
void initializeAAEvalPass (PassRegistry &)
 
void initializeAddDiscriminatorsPass (PassRegistry &)
 
void initializeADCEPass (PassRegistry &)
 
void initializeAliasAnalysisAnalysisGroup (PassRegistry &)
 
void initializeAliasAnalysisCounterPass (PassRegistry &)
 
void initializeAliasDebuggerPass (PassRegistry &)
 
void initializeAliasSetPrinterPass (PassRegistry &)
 
void initializeAlwaysInlinerPass (PassRegistry &)
 
void initializeArgPromotionPass (PassRegistry &)
 
void initializeAtomicExpandPass (PassRegistry &)
 
void initializeSampleProfileLoaderPass (PassRegistry &)
 
void initializeAlignmentFromAssumptionsPass (PassRegistry &)
 
void initializeBarrierNoopPass (PassRegistry &)
 
void initializeBasicAliasAnalysisPass (PassRegistry &)
 
void initializeCallGraphWrapperPassPass (PassRegistry &)
 
void initializeBasicTTIPass (PassRegistry &)
 
void initializeBlockExtractorPassPass (PassRegistry &)
 
void initializeBlockFrequencyInfoPass (PassRegistry &)
 
void initializeBoundsCheckingPass (PassRegistry &)
 
void initializeBranchFolderPassPass (PassRegistry &)
 
void initializeBranchProbabilityInfoPass (PassRegistry &)
 
void initializeBreakCriticalEdgesPass (PassRegistry &)
 
void initializeCallGraphPrinterPass (PassRegistry &)
 
void initializeCallGraphViewerPass (PassRegistry &)
 
void initializeCFGOnlyPrinterPass (PassRegistry &)
 
void initializeCFGOnlyViewerPass (PassRegistry &)
 
void initializeCFGPrinterPass (PassRegistry &)
 
void initializeCFGSimplifyPassPass (PassRegistry &)
 
void initializeCFLAliasAnalysisPass (PassRegistry &)
 
void initializeForwardControlFlowIntegrityPass (PassRegistry &)
 
void initializeFlattenCFGPassPass (PassRegistry &)
 
void initializeStructurizeCFGPass (PassRegistry &)
 
void initializeCFGViewerPass (PassRegistry &)
 
void initializeConstantHoistingPass (PassRegistry &)
 
void initializeCodeGenPreparePass (PassRegistry &)
 
void initializeConstantMergePass (PassRegistry &)
 
void initializeConstantPropagationPass (PassRegistry &)
 
void initializeMachineCopyPropagationPass (PassRegistry &)
 
void initializeCostModelAnalysisPass (PassRegistry &)
 
void initializeCorrelatedValuePropagationPass (PassRegistry &)
 
void initializeDAEPass (PassRegistry &)
 
void initializeDAHPass (PassRegistry &)
 
void initializeDCEPass (PassRegistry &)
 
void initializeDSEPass (PassRegistry &)
 
void initializeDebugInfoVerifierLegacyPassPass (PassRegistry &)
 
void initializeDeadInstEliminationPass (PassRegistry &)
 
void initializeDeadMachineInstructionElimPass (PassRegistry &)
 
void initializeDelinearizationPass (PassRegistry &)
 
void initializeDependenceAnalysisPass (PassRegistry &)
 
void initializeDomOnlyPrinterPass (PassRegistry &)
 
void initializeDomOnlyViewerPass (PassRegistry &)
 
void initializeDomPrinterPass (PassRegistry &)
 
void initializeDomViewerPass (PassRegistry &)
 
void initializeDominanceFrontierPass (PassRegistry &)
 
void initializeDominatorTreeWrapperPassPass (PassRegistry &)
 
void initializeEarlyIfConverterPass (PassRegistry &)
 
void initializeEdgeBundlesPass (PassRegistry &)
 
void initializeExpandPostRAPass (PassRegistry &)
 
void initializeGCOVProfilerPass (PassRegistry &)
 
void initializeInstrProfilingPass (PassRegistry &)
 
void initializeAddressSanitizerPass (PassRegistry &)
 
void initializeAddressSanitizerModulePass (PassRegistry &)
 
void initializeMemorySanitizerPass (PassRegistry &)
 
void initializeThreadSanitizerPass (PassRegistry &)
 
void initializeSanitizerCoverageModulePass (PassRegistry &)
 
void initializeDataFlowSanitizerPass (PassRegistry &)
 
void initializeScalarizerPass (PassRegistry &)
 
void initializeEarlyCSEPass (PassRegistry &)
 
void initializeExpandISelPseudosPass (PassRegistry &)
 
void initializeFunctionAttrsPass (PassRegistry &)
 
void initializeGCMachineCodeAnalysisPass (PassRegistry &)
 
void initializeGCModuleInfoPass (PassRegistry &)
 
void initializeGVNPass (PassRegistry &)
 
void initializeGlobalDCEPass (PassRegistry &)
 
void initializeGlobalOptPass (PassRegistry &)
 
void initializeGlobalsModRefPass (PassRegistry &)
 
void initializeIPCPPass (PassRegistry &)
 
void initializeIPSCCPPass (PassRegistry &)
 
void initializeIVUsersPass (PassRegistry &)
 
void initializeIfConverterPass (PassRegistry &)
 
void initializeIndVarSimplifyPass (PassRegistry &)
 
void initializeInlineCostAnalysisPass (PassRegistry &)
 
void initializeInstCombinerPass (PassRegistry &)
 
void initializeInstCountPass (PassRegistry &)
 
void initializeInstNamerPass (PassRegistry &)
 
void initializeInternalizePassPass (PassRegistry &)
 
void initializeIntervalPartitionPass (PassRegistry &)
 
void initializeJumpInstrTableInfoPass (PassRegistry &)
 
void initializeJumpInstrTablesPass (PassRegistry &)
 
void initializeJumpThreadingPass (PassRegistry &)
 
void initializeLCSSAPass (PassRegistry &)
 
void initializeLICMPass (PassRegistry &)
 
void initializeLazyValueInfoPass (PassRegistry &)
 
void initializeLibCallAliasAnalysisPass (PassRegistry &)
 
void initializeLintPass (PassRegistry &)
 
void initializeLiveDebugVariablesPass (PassRegistry &)
 
void initializeLiveIntervalsPass (PassRegistry &)
 
void initializeLiveRegMatrixPass (PassRegistry &)
 
void initializeLiveStacksPass (PassRegistry &)
 
void initializeLiveVariablesPass (PassRegistry &)
 
void initializeLoaderPassPass (PassRegistry &)
 
void initializeLocalStackSlotPassPass (PassRegistry &)
 
void initializeLoopDeletionPass (PassRegistry &)
 
void initializeLoopExtractorPass (PassRegistry &)
 
void initializeLoopInfoPass (PassRegistry &)
 
void initializeLoopInstSimplifyPass (PassRegistry &)
 
void initializeLoopRotatePass (PassRegistry &)
 
void initializeLoopSimplifyPass (PassRegistry &)
 
void initializeLoopStrengthReducePass (PassRegistry &)
 
void initializeGlobalMergePass (PassRegistry &)
 
void initializeLoopRerollPass (PassRegistry &)
 
void initializeLoopUnrollPass (PassRegistry &)
 
void initializeLoopUnswitchPass (PassRegistry &)
 
void initializeLoopIdiomRecognizePass (PassRegistry &)
 
void initializeLowerAtomicPass (PassRegistry &)
 
void initializeLowerExpectIntrinsicPass (PassRegistry &)
 
void initializeLowerIntrinsicsPass (PassRegistry &)
 
void initializeLowerInvokePass (PassRegistry &)
 
void initializeLowerSwitchPass (PassRegistry &)
 
void initializeMachineBlockFrequencyInfoPass (PassRegistry &)
 
void initializeMachineBlockPlacementPass (PassRegistry &)
 
void initializeMachineBlockPlacementStatsPass (PassRegistry &)
 
void initializeMachineBranchProbabilityInfoPass (PassRegistry &)
 
void initializeMachineCSEPass (PassRegistry &)
 
void initializeMachineDominatorTreePass (PassRegistry &)
 
void initializeMachineDominanceFrontierPass (PassRegistry &)
 
void initializeMachinePostDominatorTreePass (PassRegistry &)
 
void initializeMachineLICMPass (PassRegistry &)
 
void initializeMachineLoopInfoPass (PassRegistry &)
 
void initializeMachineModuleInfoPass (PassRegistry &)
 
void initializeMachineRegionInfoPassPass (PassRegistry &)
 
void initializeMachineSchedulerPass (PassRegistry &)
 
void initializeMachineSinkingPass (PassRegistry &)
 
void initializeMachineTraceMetricsPass (PassRegistry &)
 
void initializeMachineVerifierPassPass (PassRegistry &)
 
void initializeMemCpyOptPass (PassRegistry &)
 
void initializeMemDepPrinterPass (PassRegistry &)
 
void initializeMemoryDependenceAnalysisPass (PassRegistry &)
 
void initializeMergedLoadStoreMotionPass (PassRegistry &)
 
void initializeMetaRenamerPass (PassRegistry &)
 
void initializeMergeFunctionsPass (PassRegistry &)
 
void initializeModuleDebugInfoPrinterPass (PassRegistry &)
 
void initializeNoAAPass (PassRegistry &)
 
void initializeObjCARCAliasAnalysisPass (PassRegistry &)
 
void initializeObjCARCAPElimPass (PassRegistry &)
 
void initializeObjCARCExpandPass (PassRegistry &)
 
void initializeObjCARCContractPass (PassRegistry &)
 
void initializeObjCARCOptPass (PassRegistry &)
 
void initializePAEvalPass (PassRegistry &)
 
void initializeOptimizePHIsPass (PassRegistry &)
 
void initializePartiallyInlineLibCallsPass (PassRegistry &)
 
void initializePEIPass (PassRegistry &)
 
void initializePHIEliminationPass (PassRegistry &)
 
void initializePartialInlinerPass (PassRegistry &)
 
void initializePeepholeOptimizerPass (PassRegistry &)
 
void initializePostDomOnlyPrinterPass (PassRegistry &)
 
void initializePostDomOnlyViewerPass (PassRegistry &)
 
void initializePostDomPrinterPass (PassRegistry &)
 
void initializePostDomViewerPass (PassRegistry &)
 
void initializePostDominatorTreePass (PassRegistry &)
 
void initializePostRASchedulerPass (PassRegistry &)
 
void initializePostMachineSchedulerPass (PassRegistry &)
 
void initializePrintFunctionPassWrapperPass (PassRegistry &)
 
void initializePrintModulePassWrapperPass (PassRegistry &)
 
void initializePrintBasicBlockPassPass (PassRegistry &)
 
void initializeProcessImplicitDefsPass (PassRegistry &)
 
void initializePromotePassPass (PassRegistry &)
 
void initializePruneEHPass (PassRegistry &)
 
void initializeReassociatePass (PassRegistry &)
 
void initializeRegToMemPass (PassRegistry &)
 
void initializeRegionInfoPassPass (PassRegistry &)
 
void initializeRegionOnlyPrinterPass (PassRegistry &)
 
void initializeRegionOnlyViewerPass (PassRegistry &)
 
void initializeRegionPrinterPass (PassRegistry &)
 
void initializeRegionViewerPass (PassRegistry &)
 
void initializeSCCPPass (PassRegistry &)
 
void initializeSROAPass (PassRegistry &)
 
void initializeSROA_DTPass (PassRegistry &)
 
void initializeSROA_SSAUpPass (PassRegistry &)
 
void initializeScalarEvolutionAliasAnalysisPass (PassRegistry &)
 
void initializeScalarEvolutionPass (PassRegistry &)
 
void initializeSimpleInlinerPass (PassRegistry &)
 
void initializeRegisterCoalescerPass (PassRegistry &)
 
void initializeSingleLoopExtractorPass (PassRegistry &)
 
void initializeSinkingPass (PassRegistry &)
 
void initializeSeparateConstOffsetFromGEPPass (PassRegistry &)
 
void initializeSlotIndexesPass (PassRegistry &)
 
void initializeSpillPlacementPass (PassRegistry &)
 
void initializeStackProtectorPass (PassRegistry &)
 
void initializeStackColoringPass (PassRegistry &)
 
void initializeStackSlotColoringPass (PassRegistry &)
 
void initializeStripDeadDebugInfoPass (PassRegistry &)
 
void initializeStripDeadPrototypesPassPass (PassRegistry &)
 
void initializeStripDebugDeclarePass (PassRegistry &)
 
void initializeStripNonDebugSymbolsPass (PassRegistry &)
 
void initializeStripSymbolsPass (PassRegistry &)
 
void initializeTailCallElimPass (PassRegistry &)
 
void initializeTailDuplicatePassPass (PassRegistry &)
 
void initializeTargetPassConfigPass (PassRegistry &)
 
void initializeDataLayoutPassPass (PassRegistry &)
 
void initializeTargetTransformInfoAnalysisGroup (PassRegistry &)
 
void initializeFunctionTargetTransformInfoPass (PassRegistry &)
 
void initializeNoTTIPass (PassRegistry &)
 
void initializeTargetLibraryInfoPass (PassRegistry &)
 
void initializeAssumptionCacheTrackerPass (PassRegistry &)
 
void initializeTwoAddressInstructionPassPass (PassRegistry &)
 
void initializeTypeBasedAliasAnalysisPass (PassRegistry &)
 
void initializeScopedNoAliasAAPass (PassRegistry &)
 
void initializeUnifyFunctionExitNodesPass (PassRegistry &)
 
void initializeUnreachableBlockElimPass (PassRegistry &)
 
void initializeUnreachableMachineBlockElimPass (PassRegistry &)
 
void initializeVerifierLegacyPassPass (PassRegistry &)
 
void initializeVirtRegMapPass (PassRegistry &)
 
void initializeVirtRegRewriterPass (PassRegistry &)
 
void initializeInstSimplifierPass (PassRegistry &)
 
void initializeUnpackMachineBundlesPass (PassRegistry &)
 
void initializeFinalizeMachineBundlesPass (PassRegistry &)
 
void initializeLoopVectorizePass (PassRegistry &)
 
void initializeSLPVectorizerPass (PassRegistry &)
 
void initializeBBVectorizePass (PassRegistry &)
 
void initializeMachineFunctionPrinterPassPass (PassRegistry &)
 
void initializeStackMapLivenessPass (PassRegistry &)
 
void initializeMachineCombinerPass (PassRegistry &)
 
void initializeLoadCombinePass (PassRegistry &)
 
void initializeRewriteSymbolsPass (PassRegistry &)
 
bool UpgradeIntrinsicFunction (Function *F, Function *&NewFn)
 
void UpgradeIntrinsicCall (CallInst *CI, Function *NewFn)
 
void UpgradeCallsToIntrinsic (Function *F)
 
bool UpgradeGlobalVariable (GlobalVariable *GV)
 
void UpgradeInstWithTBAATag (Instruction *I)
 
InstructionUpgradeBitCastInst (unsigned Opc, Value *V, Type *DestTy, Instruction *&Temp)
 
ValueUpgradeBitCastExpr (unsigned Opc, Constant *C, Type *DestTy)
 
bool UpgradeDebugInfo (Module &M)
 
void UpgradeMDStringConstant (std::string &String)
 Upgrade a metadata string constant in place. More...
 
pred_iterator pred_begin (BasicBlock *BB)
 
const_pred_iterator pred_begin (const BasicBlock *BB)
 
pred_iterator pred_end (BasicBlock *BB)
 
const_pred_iterator pred_end (const BasicBlock *BB)
 
bool pred_empty (const BasicBlock *BB)
 
succ_iterator succ_begin (BasicBlock *BB)
 
succ_const_iterator succ_begin (const BasicBlock *BB)
 
succ_iterator succ_end (BasicBlock *BB)
 
succ_const_iterator succ_end (const BasicBlock *BB)
 
bool succ_empty (const BasicBlock *BB)
 
raw_ostreamoperator<< (raw_ostream &OS, const Comdat &C)
 
raw_ostreamoperator<< (raw_ostream &OS, const ConstantRange &CR)
 
DataLayoutunwrap (LLVMTargetDataRef P)
 
LLVMTargetDataRef wrap (const DataLayout *P)
 
DISubprogram getDISubprogram (const MDNode *Scope)
 Find subprogram that is enclosing this scope. More...
 
DISubprogram getDISubprogram (const Function *F)
 Find debug info for a given function. More...
 
DICompositeType getDICompositeType (DIType T)
 Find underlying composite type. More...
 
DIVariable createInlinedVariable (MDNode *DV, MDNode *InlinedScope, LLVMContext &VMContext)
 Create a new inlined variable based on current variable. More...
 
DIVariable cleanseInlinedVariable (MDNode *DV, LLVMContext &VMContext)
 Remove inlined scope from the variable. More...
 
DITypeIdentifierMap generateDITypeIdentifierMap (const NamedMDNode *CU_Nodes)
 Generate map by visiting all retained types. More...
 
bool StripDebugInfo (Module &M)
 Strip debug info in the module if it exists. More...
 
unsigned getDebugMetadataVersionFromModule (const Module &M)
 Return Debug Info Metadata Version by checking module flags. More...
 
DenseMap< const Function
*, DISubprogram
makeSubprogramMap (const Module &M)
 
int getNextAvailablePluginDiagnosticKind ()
 Get the next available kind ID for a plugin diagnostic. Each time this function is called, it returns a different number. Therefore, a plugin that wants to "identify" its own classes with a dynamic identifier, just have to use this method to get a new ID and assign it to each of its classes. The returned ID will be greater than or equal to DK_FirstPluginKind. Thus, the plugin identifiers will not conflict with the DiagnosticKind values. More...
 
void emitOptimizationRemark (LLVMContext &Ctx, const char *PassName, const Function &Fn, const DebugLoc &DLoc, const Twine &Msg)
 
void emitOptimizationRemarkMissed (LLVMContext &Ctx, const char *PassName, const Function &Fn, const DebugLoc &DLoc, const Twine &Msg)
 
void emitOptimizationRemarkAnalysis (LLVMContext &Ctx, const char *PassName, const Function &Fn, const DebugLoc &DLoc, const Twine &Msg)
 
void emitLoopVectorizeWarning (LLVMContext &Ctx, const Function &Fn, const DebugLoc &DLoc, const Twine &Msg)
 
void emitLoopInterleaveWarning (LLVMContext &Ctx, const Function &Fn, const DebugLoc &DLoc, const Twine &Msg)
 
 EXTERN_TEMPLATE_INSTANTIATION (class DomTreeNodeBase< BasicBlock >)
 
 EXTERN_TEMPLATE_INSTANTIATION (class DominatorTreeBase< BasicBlock >)
 
 EXTERN_TEMPLATE_INSTANTIATION (void Calculate< Function LLVM_COMMA BasicBlock * >(DominatorTreeBase< GraphTraits< BasicBlock * >::NodeType > &DT LLVM_COMMAFunction &F))
 
 EXTERN_TEMPLATE_INSTANTIATION (void Calculate< Function LLVM_COMMA Inverse< BasicBlock * > >(DominatorTreeBase< GraphTraits< Inverse< BasicBlock * > >::NodeType > &DTLLVM_COMMA Function &F))
 
gep_type_iterator gep_type_begin (const User *GEP)
 
gep_type_iterator gep_type_end (const User *GEP)
 
gep_type_iterator gep_type_begin (const User &GEP)
 
gep_type_iterator gep_type_end (const User &GEP)
 
template<typename T >
generic_gep_type_iterator
< const T * > 
gep_type_begin (Type *Op0, ArrayRef< T > A)
 
template<typename T >
generic_gep_type_iterator
< const T * > 
gep_type_end (Type *, ArrayRef< T > A)
 
inst_iterator inst_begin (Function *F)
 
inst_iterator inst_end (Function *F)
 
const_inst_iterator inst_begin (const Function *F)
 
const_inst_iterator inst_end (const Function *F)
 
inst_iterator inst_begin (Function &F)
 
inst_iterator inst_end (Function &F)
 
const_inst_iterator inst_begin (const Function &F)
 
const_inst_iterator inst_end (const Function &F)
 
bool isAtLeastAcquire (AtomicOrdering Ord)
 
bool isAtLeastRelease (AtomicOrdering Ord)
 
TypecheckGEPType (Type *Ty)
 
ModulePasscreatePrintModulePass (raw_ostream &OS, const std::string &Banner="")
 Create and return a pass that writes the module to the specified raw_ostream. More...
 
FunctionPasscreatePrintFunctionPass (raw_ostream &OS, const std::string &Banner="")
 Create and return a pass that prints functions to the specified raw_ostream as they are processed. More...
 
BasicBlockPasscreatePrintBasicBlockPass (raw_ostream &OS, const std::string &Banner="")
 Create and return a pass that writes the BB to the specified raw_ostream. More...
 
TimergetPassTimer (Pass *)
 If TimingInfo is enabled then start pass timer. More...
 
LLVMContextgetGlobalContext ()
 
LLVMContext ** unwrap (LLVMContextRef *Tys)
 
LLVMContextRefwrap (const LLVMContext **Tys)
 
raw_ostreamoperator<< (raw_ostream &OS, const Metadata &MD)
 
raw_ostreamoperator<< (raw_ostream &O, const Module &M)
 An raw_ostream inserter for modules. More...
 
Moduleunwrap (LLVMModuleProviderRef MP)
 
template<typename FunctionPassT >
ModuleToFunctionPassAdaptor
< FunctionPassT > 
createModuleToFunctionPassAdaptor (FunctionPassT Pass)
 A function to deduce a function pass type and wrap it in the templated adaptor. More...
 
bool isStatepoint (const ImmutableCallSite &CS)
 
bool isStatepoint (const Instruction *inst)
 
bool isStatepoint (const Instruction &inst)
 
bool isGCRelocate (const Instruction *inst)
 
bool isGCRelocate (const ImmutableCallSite &CS)
 
bool isGCResult (const Instruction *inst)
 
bool isGCResult (const ImmutableCallSite &CS)
 
static raw_ostreamoperator<< (raw_ostream &OS, Type &T)
 
Type ** unwrap (LLVMTypeRef *Tys)
 
LLVMTypeRefwrap (Type **Tys)
 
 DEFINE_INTEGRAL_TYPEBUILDER (char)
 
 DEFINE_INTEGRAL_TYPEBUILDER (signed char)
 
 DEFINE_INTEGRAL_TYPEBUILDER (unsigned char)
 
 DEFINE_INTEGRAL_TYPEBUILDER (short)
 
 DEFINE_INTEGRAL_TYPEBUILDER (int)
 
 DEFINE_INTEGRAL_TYPEBUILDER (long)
 
 DEFINE_INTEGRAL_TYPEBUILDER (unsigned long long)
 
bool shouldPreserveBitcodeUseListOrder ()
 Whether to preserve use-list ordering. More...
 
bool shouldPreserveAssemblyUseListOrder ()
 
void setPreserveBitcodeUseListOrder (bool ShouldPreserve)
 
void setPreserveAssemblyUseListOrder (bool ShouldPreserve)
 
raw_ostreamoperator<< (raw_ostream &OS, const Value &V)
 
Value ** unwrap (LLVMValueRef *Vals)
 
template<typename T >
T ** unwrap (LLVMValueRef *Vals, unsigned Length)
 
LLVMValueRefwrap (const Value **Vals)
 
bool verifyFunction (const Function &F, raw_ostream *OS=nullptr)
 Check a function for errors, useful for use when debugging a pass. More...
 
bool verifyModule (const Module &M, raw_ostream *OS=nullptr)
 Check a module for errors. More...
 
FunctionPasscreateVerifierPass (bool FatalErrors=true)
 Create a verifier pass. More...
 
ModulePasscreateDebugInfoVerifierPass (bool FatalErrors=true)
 Create a debug-info verifier pass. More...
 
std::unique_ptr< ModulegetLazyIRFileModule (StringRef Filename, SMDiagnostic &Err, LLVMContext &Context)
 
std::unique_ptr< ModuleparseIR (MemoryBufferRef Buffer, SMDiagnostic &Err, LLVMContext &Context)
 
std::unique_ptr< ModuleparseIRFile (StringRef Filename, SMDiagnostic &Err, LLVMContext &Context)
 
bool operator!= (const MachineLocation &LHS, const MachineLocation &RHS)
 
MCObjectWritercreateELFObjectWriter (MCELFObjectTargetWriter *MOTW, raw_ostream &OS, bool IsLittleEndian)
 Construct a new ELF writer instance. More...
 
MCELFStreamercreateARMELFStreamer (MCContext &Context, MCAsmBackend &TAB, raw_ostream &OS, MCCodeEmitter *Emitter, bool RelaxAll, bool IsThumb)
 
raw_ostreamoperator<< (raw_ostream &OS, const MCExpr &E)
 
raw_ostreamoperator<< (raw_ostream &OS, const MCOperand &MO)
 
raw_ostreamoperator<< (raw_ostream &OS, const MCInst &MI)
 
raw_ostreamoperator<< (raw_ostream &OS, const MCLabel &Label)
 
static StringRef MCLOHDirectiveName ()
 
static bool isValidMCLOHType (unsigned Kind)
 
static int MCLOHNameToId (StringRef Name)
 
static StringRef MCLOHIdToName (MCLOHType Kind)
 
static int MCLOHIdToNbArgs (MCLOHType Kind)
 
MCObjectWritercreateMachObjectWriter (MCMachObjectTargetWriter *MOTW, raw_ostream &OS, bool IsLittleEndian)
 Construct a new Mach-O writer instance. More...
 
MCAsmParsercreateMCAsmParser (SourceMgr &, MCContext &, MCStreamer &, const MCAsmInfo &)
 Create an MCAsmParser instance. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const MCParsedAsmOperand &MO)
 
MCStreamercreateNullStreamer (MCContext &Ctx)
 
MCStreamercreateAsmStreamer (MCContext &Ctx, formatted_raw_ostream &OS, bool isVerboseAsm, bool useDwarfDirectory, MCInstPrinter *InstPrint, MCCodeEmitter *CE, MCAsmBackend *TAB, bool ShowInst)
 
MCStreamercreateMachOStreamer (MCContext &Ctx, MCAsmBackend &TAB, raw_ostream &OS, MCCodeEmitter *CE, bool RelaxAll=false, bool LabelSections=false)
 
MCStreamercreateELFStreamer (MCContext &Ctx, MCAsmBackend &TAB, raw_ostream &OS, MCCodeEmitter *CE, bool RelaxAll)
 
raw_ostreamoperator<< (raw_ostream &OS, const MCSymbol &Sym)
 
bool operator== (const MCTargetOptions &LHS, const MCTargetOptions &RHS)
 
bool operator!= (const MCTargetOptions &LHS, const MCTargetOptions &RHS)
 
MCObjectWritercreateWinCOFFObjectWriter (MCWinCOFFObjectTargetWriter *MOTW, raw_ostream &OS)
 Construct a new Win COFF writer instance. More...
 
template<typename PassName >
PasscallDefaultCtor ()
 
template<typename PassName >
PasscallTargetMachineCtor (TargetMachine *TM)
 
const std::error_categoryinstrprof_category ()
 
std::error_code make_error_code (instrprof_error E)
 
const std::error_categorysampleprof_category ()
 
std::error_code make_error_code (sampleprof_error E)
 
template<typename T >
unsigned alignOf ()
 
raw_ostreamoperator<< (raw_ostream &OS, const BranchProbability &Prob)
 
template<typename T >
static size_t capacity_in_bytes (const T &x)
 
template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT bool isa (const Y &Val)
 
template<class X , class Y >
std::enable_if<!is_simple_type
< Y >::value, typename
cast_retty< X, const Y >
::ret_type >::type 
cast (const Y &Val)
 
template<class X , class Y >
cast_retty< X, Y >::ret_type cast (Y &Val)
 
template<class X , class Y >
cast_retty< X, Y * >::ret_type cast (Y *Val)
 
template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT
std::enable_if
< !is_simple_type< Y >::value,
typename cast_retty< X, const
Y >::ret_type >::type 
cast_or_null (const Y &Val)
 
template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT
std::enable_if
< !is_simple_type< Y >::value,
typename cast_retty< X, Y >
::ret_type >::type 
cast_or_null (Y &Val)
 
template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT
cast_retty< X, Y * >::ret_type 
cast_or_null (Y *Val)
 
template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT
std::enable_if
< !is_simple_type< Y >::value,
typename cast_retty< X, const
Y >::ret_type >::type 
dyn_cast (const Y &Val)
 
template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT
cast_retty< X, Y >::ret_type 
dyn_cast (Y &Val)
 
template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT
cast_retty< X, Y * >::ret_type 
dyn_cast (Y *Val)
 
template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT
std::enable_if
< !is_simple_type< Y >::value,
typename cast_retty< X, const
Y >::ret_type >::type 
dyn_cast_or_null (const Y &Val)
 
template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT
std::enable_if
< !is_simple_type< Y >::value,
typename cast_retty< X, Y >
::ret_type >::type 
dyn_cast_or_null (Y &Val)
 
template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT
cast_retty< X, Y * >::ret_type 
dyn_cast_or_null (Y *Val)
 
CodeModel::Model unwrap (LLVMCodeModel Model)
 
LLVMCodeModel wrap (CodeModel::Model Model)
 
DataStreamergetDataFileStreamer (const std::string &Filename, std::string *Err)
 
bool isCurrentDebugType (const char *Type)
 
void setCurrentDebugType (const char *Type)
 
raw_ostreamdbgs ()
 dbgs - Return a circular-buffered debug stream. More...
 
std::error_code make_error_code (errc E)
 
void install_fatal_error_handler (fatal_error_handler_t handler, void *user_data=nullptr)
 
void remove_fatal_error_handler ()
 Restores default error handling behaviour. More...
 
LLVM_ATTRIBUTE_NORETURN void report_fatal_error (const char *reason, bool gen_crash_diag=true)
 
LLVM_ATTRIBUTE_NORETURN void report_fatal_error (const std::string &reason, bool gen_crash_diag=true)
 
LLVM_ATTRIBUTE_NORETURN void report_fatal_error (StringRef reason, bool gen_crash_diag=true)
 
LLVM_ATTRIBUTE_NORETURN void report_fatal_error (const Twine &reason, bool gen_crash_diag=true)
 
LLVM_ATTRIBUTE_NORETURN void llvm_unreachable_internal (const char *msg=nullptr, const char *file=nullptr, unsigned line=0)
 
template<class T , class V >
std::enable_if
< std::is_constructible< T, V >
::value, typename
std::remove_reference< V >
::type >::type && 
moveIfMoveConstructible (V &Val)
 
template<class T , class V >
std::enable_if
< !std::is_constructible< T, V >
::value, typename
std::remove_reference< V >
::type >::type & 
moveIfMoveConstructible (V &Val)
 
template<class T , class E >
std::enable_if
< std::is_error_code_enum< E >
::value||std::is_error_condition_enum
< E >::value, bool >::type 
operator== (ErrorOr< T > &Err, E Code)
 
int DiffFilesWithTolerance (StringRef FileA, StringRef FileB, double AbsTol, double RelTol, std::string *Error=nullptr)
 
template<typename T >
format_object1< Tformat (const char *Fmt, const T &Val)
 
template<typename T1 , typename T2 >
format_object2< T1, T2 > format (const char *Fmt, const T1 &Val1, const T2 &Val2)
 
template<typename T1 , typename T2 , typename T3 >
format_object3< T1, T2, T3 > format (const char *Fmt, const T1 &Val1, const T2 &Val2, const T3 &Val3)
 
template<typename T1 , typename T2 , typename T3 , typename T4 >
format_object4< T1, T2, T3, T4 > format (const char *Fmt, const T1 &Val1, const T2 &Val2, const T3 &Val3, const T4 &Val4)
 
template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
format_object5< T1, T2, T3, T4,
T5 > 
format (const char *Fmt, const T1 &Val1, const T2 &Val2, const T3 &Val3, const T4 &Val4, const T5 &Val5)
 
template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
format_object6< T1, T2, T3, T4,
T5, T6 > 
format (const char *Fmt, const T1 &Val1, const T2 &Val2, const T3 &Val3, const T4 &Val4, const T5 &Val5, const T6 &Val6)
 
FormattedString left_justify (StringRef Str, unsigned Width)
 
FormattedString right_justify (StringRef Str, unsigned Width)
 
FormattedNumber format_hex (uint64_t N, unsigned Width, bool Upper=false)
 
FormattedNumber format_decimal (int64_t N, unsigned Width)
 
formatted_raw_ostreamfouts ()
 
formatted_raw_ostreamferrs ()
 
formatted_raw_ostreamfdbgs ()
 
template<class NodeT >
raw_ostreamoperator<< (raw_ostream &o, const DomTreeNodeBase< NodeT > *Node)
 
template<class NodeT >
void PrintDomTree (const DomTreeNodeBase< NodeT > *N, raw_ostream &o, unsigned Lev)
 
template<class FuncT , class N >
void Calculate (DominatorTreeBase< typename GraphTraits< N >::NodeType > &DT, FuncT &F)
 
template<class GraphT >
unsigned DFSPass (DominatorTreeBase< typename GraphT::NodeType > &DT, typename GraphT::NodeType *V, unsigned N)
 
template<class GraphT >
GraphT::NodeType * Eval (DominatorTreeBase< typename GraphT::NodeType > &DT, typename GraphT::NodeType *VIn, unsigned LastLinked)
 
template<class FuncT , class NodeT >
void Calculate (DominatorTreeBase< typename GraphTraits< NodeT >::NodeType > &DT, FuncT &F)
 
bool DisplayGraph (StringRef Filename, bool wait=true, GraphProgram::Name program=GraphProgram::DOT)
 
template<typename GraphType >
raw_ostreamWriteGraph (raw_ostream &O, const GraphType &G, bool ShortNames=false, const Twine &Title="")
 
std::string createGraphFilename (const Twine &Name, int &FD)
 
template<typename GraphType >
std::string WriteGraph (const GraphType &G, const Twine &Name, bool ShortNames=false, const Twine &Title="")
 
template<typename GraphType >
void ViewGraph (const GraphType &G, const Twine &Name, bool ShortNames=false, const Twine &Title="", GraphProgram::Name Program=GraphProgram::DOT)
 
void encodeSLEB128 (int64_t Value, raw_ostream &OS)
 Utility function to encode a SLEB128 value to an output stream. More...
 
void encodeULEB128 (uint64_t Value, raw_ostream &OS, unsigned Padding=0)
 Utility function to encode a ULEB128 value to an output stream. More...
 
unsigned encodeULEB128 (uint64_t Value, uint8_t *p, unsigned Padding=0)
 
uint64_t decodeULEB128 (const uint8_t *p, unsigned *n=nullptr)
 Utility function to decode a ULEB128 value. More...
 
int64_t decodeSLEB128 (const uint8_t *p, unsigned *n=nullptr)
 Utility function to decode a SLEB128 value. More...
 
unsigned getULEB128Size (uint64_t Value)
 Utility function to get the size of the ULEB128-encoded value. More...
 
unsigned getSLEB128Size (int64_t Value)
 Utility function to get the size of the SLEB128-encoded value. More...
 
template<class C >
void * object_creator ()
 object_creator - Helper method for ManagedStatic. More...
 
void llvm_shutdown ()
 llvm_shutdown - Deallocate and destroy all ManagedStatic variables. More...
 
template<typename T >
std::enable_if
< std::numeric_limits< T >
::is_integer
&&!std::numeric_limits< T >
::is_signed, std::size_t >
::type 
countTrailingZeros (T Val, ZeroBehavior ZB=ZB_Width)
 Count number of 0's from the least significant bit to the most stopping at the first 1. More...
 
template<typename T >
std::enable_if
< std::numeric_limits< T >
::is_integer
&&std::numeric_limits< T >
::is_signed, std::size_t >
::type 
countTrailingZeros (T, ZeroBehavior=ZB_Width) LLVM_DELETED_FUNCTION
 Count number of 0's from the least significant bit to the most stopping at the first 1. More...
 
template<typename T >
std::enable_if
< std::numeric_limits< T >
::is_integer
&&!std::numeric_limits< T >
::is_signed, std::size_t >
::type 
countLeadingZeros (T Val, ZeroBehavior ZB=ZB_Width)
 Count number of 0's from the most significant bit to the least stopping at the first 1. More...
 
template<typename T >
std::enable_if
< std::numeric_limits< T >
::is_integer
&&std::numeric_limits< T >
::is_signed, std::size_t >
::type 
countLeadingZeros (T, ZeroBehavior=ZB_Width) LLVM_DELETED_FUNCTION
 Count number of 0's from the most significant bit to the least stopping at the first 1. More...
 
template<typename T >
std::enable_if
< std::numeric_limits< T >
::is_integer
&&!std::numeric_limits< T >
::is_signed, T >::type 
findFirstSet (T Val, ZeroBehavior ZB=ZB_Max)
 Get the index of the first set bit starting from the least significant bit. More...
 
template<typename T >
std::enable_if
< std::numeric_limits< T >
::is_integer
&&std::numeric_limits< T >
::is_signed, T >::type 
findFirstSet (T, ZeroBehavior=ZB_Max) LLVM_DELETED_FUNCTION
 Get the index of the first set bit starting from the least significant bit. More...
 
template<typename T >
std::enable_if
< std::numeric_limits< T >
::is_integer
&&!std::numeric_limits< T >
::is_signed, T >::type 
findLastSet (T Val, ZeroBehavior ZB=ZB_Max)
 Get the index of the last set bit starting from the least significant bit. More...
 
template<typename T >
std::enable_if
< std::numeric_limits< T >
::is_integer
&&std::numeric_limits< T >
::is_signed, T >::type 
findLastSet (T, ZeroBehavior=ZB_Max) LLVM_DELETED_FUNCTION
 Get the index of the last set bit starting from the least significant bit. More...
 
template<typename T >
T reverseBits (T Val)
 Reverse the bits in Val. More...
 
uint32_t Hi_32 (uint64_t Value)
 Hi_32 - This function returns the high 32 bits of a 64 bit value. More...
 
uint32_t Lo_32 (uint64_t Value)
 Lo_32 - This function returns the low 32 bits of a 64 bit value. More...
 
uint64_t Make_64 (uint32_t High, uint32_t Low)
 
template<unsigned N>
bool isInt (int64_t x)
 isInt - Checks if an integer fits into the given bit width. More...
 
template<>
bool isInt< 8 > (int64_t x)
 
template<>
bool isInt< 16 > (int64_t x)
 
template<>
bool isInt< 32 > (int64_t x)
 
template<unsigned N, unsigned S>
bool isShiftedInt (int64_t x)
 
template<unsigned N>
bool isUInt (uint64_t x)
 isUInt - Checks if an unsigned integer fits into the given bit width. More...
 
template<>
bool isUInt< 8 > (uint64_t x)
 
template<>
bool isUInt< 16 > (uint64_t x)
 
template<>
bool isUInt< 32 > (uint64_t x)
 
template<unsigned N, unsigned S>
bool isShiftedUInt (uint64_t x)
 
bool isUIntN (unsigned N, uint64_t x)
 
bool isIntN (unsigned N, int64_t x)
 
bool isMask_32 (uint32_t Value)
 
bool isMask_64 (uint64_t Value)
 
bool isShiftedMask_32 (uint32_t Value)
 
bool isShiftedMask_64 (uint64_t Value)
 
bool isPowerOf2_32 (uint32_t Value)
 
bool isPowerOf2_64 (uint64_t Value)
 
uint16_t ByteSwap_16 (uint16_t Value)
 
uint32_t ByteSwap_32 (uint32_t Value)
 
uint64_t ByteSwap_64 (uint64_t Value)
 
unsigned CountLeadingOnes_32 (uint32_t Value)
 
unsigned CountLeadingOnes_64 (uint64_t Value)
 
unsigned CountTrailingOnes_32 (uint32_t Value)
 
unsigned CountTrailingOnes_64 (uint64_t Value)
 
unsigned CountPopulation_32 (uint32_t Value)
 
unsigned CountPopulation_64 (uint64_t Value)
 
unsigned Log2_32 (uint32_t Value)
 
unsigned Log2_64 (uint64_t Value)
 
unsigned Log2_32_Ceil (uint32_t Value)
 
unsigned Log2_64_Ceil (uint64_t Value)
 
uint64_t GreatestCommonDivisor64 (uint64_t A, uint64_t B)
 
double BitsToDouble (uint64_t Bits)
 
float BitsToFloat (uint32_t Bits)
 
uint64_t DoubleToBits (double Double)
 
uint32_t FloatToBits (float Float)
 
int IsNAN (float f)
 Platform-independent wrappers for the C99 isnan() function. More...
 
int IsNAN (double d)
 
int IsInf (float f)
 Platform-independent wrappers for the C99 isinf() function. More...
 
int IsInf (double d)
 
uint64_t MinAlign (uint64_t A, uint64_t B)
 
uintptr_t alignAddr (void *Addr, size_t Alignment)
 Aligns Addr to Alignment bytes, rounding up. More...
 
size_t alignmentAdjustment (void *Ptr, size_t Alignment)
 Returns the necessary adjustment for aligning Ptr to Alignment bytes, rounding up. More...
 
uint64_t NextPowerOf2 (uint64_t A)
 
uint64_t PowerOf2Floor (uint64_t A)
 
uint64_t RoundUpToAlignment (uint64_t Value, uint64_t Align)
 
uint64_t OffsetToAlignment (uint64_t Value, uint64_t Align)
 
int64_t abs64 (int64_t x)
 
template<unsigned B>
int32_t SignExtend32 (uint32_t x)
 
int32_t SignExtend32 (uint32_t X, unsigned B)
 Sign extend number in the bottom B bits of X to a 32-bit int. Requires 0 < B <= 32. More...
 
template<unsigned B>
int64_t SignExtend64 (uint64_t x)
 
int64_t SignExtend64 (uint64_t X, unsigned B)
 Sign extend number in the bottom B bits of X to a 64-bit int. Requires 0 < B <= 64. More...
 
static cl::opt< PluginLoader,
false, cl::parser< std::string > > 
LoadOpt ("load", cl::ZeroOrMore, cl::value_desc("pluginfilename"), cl::desc("Load the specified plugin"))
 
void EnablePrettyStackTrace ()
 
raw_ostreamouts ()
 
raw_ostreamerrs ()
 
raw_ostreamnulls ()
 nulls() - This returns a reference to a raw_ostream which discards output. More...
 
void PrintRecyclerStats (size_t Size, size_t Align, size_t FreeListSize)
 
template<class DigitsT >
raw_ostreamoperator<< (raw_ostream &OS, const ScaledNumber< DigitsT > &X)
 
MemoryObjectgetNonStreamedMemoryObject (const unsigned char *Start, const unsigned char *End)
 
bool CheckBitcodeOutputToConsole (raw_ostream &stream_to_check, bool print_warning=true)
 Check for output written to a console. More...
 
MCRelocationInfocreateMCRelocationInfo (StringRef TT, MCContext &Ctx)
 
MCSymbolizercreateMCSymbolizer (StringRef TT, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp, void *DisInfo, MCContext *Ctx, MCRelocationInfo *RelInfo)
 
void InitializeAllTargetInfos ()
 
void InitializeAllTargets ()
 
void InitializeAllTargetMCs ()
 
void InitializeAllAsmPrinters ()
 
void InitializeAllAsmParsers ()
 
void InitializeAllDisassemblers ()
 
bool InitializeNativeTarget ()
 
bool InitializeNativeTargetAsmPrinter ()
 
bool InitializeNativeTargetAsmParser ()
 
bool InitializeNativeTargetDisassembler ()
 
bool llvm_is_multithreaded ()
 
void llvm_execute_on_thread (void(*UserFn)(void *), void *UserData, unsigned RequestedStackSize=0)
 
std::error_code mapWindowsError (unsigned EV)
 
void PrintWarning (ArrayRef< SMLoc > WarningLoc, const Twine &Msg)
 
void PrintWarning (const char *Loc, const Twine &Msg)
 
void PrintWarning (const Twine &Msg)
 
void PrintError (ArrayRef< SMLoc > ErrorLoc, const Twine &Msg)
 
void PrintError (const char *Loc, const Twine &Msg)
 
void PrintError (const Twine &Msg)
 
LLVM_ATTRIBUTE_NORETURN void PrintFatalError (const Twine &Msg)
 
LLVM_ATTRIBUTE_NORETURN void PrintFatalError (ArrayRef< SMLoc > ErrorLoc, const Twine &Msg)
 
int TableGenMain (char *argv0, TableGenMainFn *MainFn)
 
raw_ostreamoperator<< (raw_ostream &OS, const RecTy &Ty)
 
RecTyresolveTypes (RecTy *T1, RecTy *T2)
 
raw_ostreamoperator<< (raw_ostream &OS, const Init &I)
 
raw_ostreamoperator<< (raw_ostream &OS, const RecordVal &RV)
 
raw_ostreamoperator<< (raw_ostream &OS, const Record &R)
 
raw_ostreamoperator<< (raw_ostream &OS, const RecordKeeper &RK)
 
InitQualifyName (Record &CurRec, MultiClass *CurMultiClass, Init *Name, const std::string &Scoper)
 
InitQualifyName (Record &CurRec, MultiClass *CurMultiClass, const std::string &Name, const std::string &Scoper)
 
void emitSourceFileHeader (StringRef Desc, raw_ostream &OS)
 
template<class TypeTy , class CompareTy >
int CostTableLookup (const CostTblEntry< TypeTy > *Tbl, unsigned len, int ISD, CompareTy Ty)
 Find in cost table, TypeTy must be comparable to CompareTy by ==. More...
 
template<class TypeTy , class CompareTy , unsigned N>
int CostTableLookup (const CostTblEntry< TypeTy >(&Tbl)[N], int ISD, CompareTy Ty)
 Find in cost table, TypeTy must be comparable to CompareTy by ==. More...
 
template<class TypeTy , class CompareTy >
int ConvertCostTableLookup (const TypeConversionCostTblEntry< TypeTy > *Tbl, unsigned len, int ISD, CompareTy Dst, CompareTy Src)
 
template<class TypeTy , class CompareTy , unsigned N>
int ConvertCostTableLookup (const TypeConversionCostTblEntry< TypeTy >(&Tbl)[N], int ISD, CompareTy Dst, CompareTy Src)
 
void GetReturnInfo (Type *ReturnType, AttributeSet attr, SmallVectorImpl< ISD::OutputArg > &Outs, const TargetLowering &TLI)
 
bool operator== (const TargetOptions &LHS, const TargetOptions &RHS)
 
bool operator!= (const TargetOptions &LHS, const TargetOptions &RHS)
 
static raw_ostreamoperator<< (raw_ostream &OS, const PrintReg &PR)
 
static raw_ostreamoperator<< (raw_ostream &OS, const PrintRegUnit &PR)
 
static raw_ostreamoperator<< (raw_ostream &OS, const PrintVRegOrUnit &PR)
 
ModulePasscreateGCOVProfilerPass (const GCOVOptions &Options=GCOVOptions::getDefault())
 
ModulePasscreateInstrProfilingPass (const InstrProfOptions &Options=InstrProfOptions())
 Insert frontend instrumentation based profiling. More...
 
FunctionPasscreateAddressSanitizerFunctionPass ()
 
ModulePasscreateAddressSanitizerModulePass ()
 
FunctionPasscreateMemorySanitizerPass (int TrackOrigins=0)
 
FunctionPasscreateThreadSanitizerPass ()
 
ModulePasscreateDataFlowSanitizerPass (StringRef ABIListFile=StringRef(), void *(*getArgTLS)()=nullptr, void *(*getRetValTLS)()=nullptr)
 
ModulePasscreateSanitizerCoverageModulePass (int CoverageLevel)
 
FunctionPasscreateBoundsCheckingPass ()
 
ModulePasscreateStripSymbolsPass (bool OnlyDebugInfo=false)
 
ModulePasscreateStripNonDebugSymbolsPass ()
 
ModulePasscreateStripDebugDeclarePass ()
 
ModulePasscreateStripDeadDebugInfoPass ()
 
ModulePasscreateConstantMergePass ()
 
ModulePasscreateGlobalOptimizerPass ()
 
ModulePasscreateGlobalDCEPass ()
 
ModulePasscreateGVExtractionPass (std::vector< GlobalValue * > &GVs, bool deleteFn=false)
 
PasscreateFunctionInliningPass ()
 
PasscreateFunctionInliningPass (int Threshold)
 
PasscreateFunctionInliningPass (unsigned OptLevel, unsigned SizeOptLevel)
 
PasscreateAlwaysInlinerPass ()
 
PasscreateAlwaysInlinerPass (bool InsertLifetime)
 
PasscreatePruneEHPass ()
 
ModulePasscreateInternalizePass (ArrayRef< const char * > ExportList)
 
ModulePasscreateInternalizePass ()
 createInternalizePass - Same as above, but with an empty exportList. More...
 
ModulePasscreateDeadArgEliminationPass ()
 
ModulePasscreateDeadArgHackingPass ()
 
PasscreateArgumentPromotionPass (unsigned maxElements=3)
 
ModulePasscreateIPConstantPropagationPass ()
 
ModulePasscreateIPSCCPPass ()
 
PasscreateLoopExtractorPass ()
 
PasscreateSingleLoopExtractorPass ()
 
ModulePasscreateBlockExtractorPass ()
 
ModulePasscreateStripDeadPrototypesPass ()
 
PasscreateFunctionAttrsPass ()
 
ModulePasscreateMergeFunctionsPass ()
 
ModulePasscreatePartialInliningPass ()
 
ModulePasscreateMetaRenamerPass ()
 
ModulePasscreateBarrierNoopPass ()
 
PasscreateObjCARCAPElimPass ()
 
PasscreateObjCARCExpandPass ()
 
PasscreateObjCARCContractPass ()
 
PasscreateObjCARCOptPass ()
 
FunctionPasscreateConstantPropagationPass ()
 
FunctionPasscreateAlignmentFromAssumptionsPass ()
 
FunctionPasscreateSCCPPass ()
 
PasscreateDeadInstEliminationPass ()
 
FunctionPasscreateDeadCodeEliminationPass ()
 
FunctionPasscreateDeadStoreEliminationPass ()
 
FunctionPasscreateAggressiveDCEPass ()
 
FunctionPasscreateSROAPass (bool RequiresDomTree=true)
 
FunctionPasscreateScalarReplAggregatesPass (signed Threshold=-1, bool UseDomTree=true, signed StructMemberThreshold=-1, signed ArrayElementThreshold=-1, signed ScalarLoadThreshold=-1)
 
PasscreateIndVarSimplifyPass ()
 
FunctionPasscreateInstructionCombiningPass ()
 
PasscreateLICMPass ()
 
PasscreateLoopStrengthReducePass ()
 
PasscreateGlobalMergePass (const TargetMachine *TM=nullptr)
 
PasscreateLoopUnswitchPass (bool OptimizeForSize=false)
 
PasscreateLoopInstSimplifyPass ()
 
PasscreateLoopUnrollPass (int Threshold=-1, int Count=-1, int AllowPartial=-1, int Runtime=-1)
 
PasscreateSimpleLoopUnrollPass ()
 
PasscreateLoopRerollPass ()
 
PasscreateLoopRotatePass (int MaxHeaderSize=-1)
 
PasscreateLoopIdiomPass ()
 
FunctionPasscreatePromoteMemoryToRegisterPass ()
 
FunctionPasscreateDemoteRegisterToMemoryPass ()
 
FunctionPasscreateReassociatePass ()
 
FunctionPasscreateJumpThreadingPass (int Threshold=-1)
 
FunctionPasscreateCFGSimplificationPass (int Threshold=-1)
 
FunctionPasscreateFlattenCFGPass ()
 
PasscreateStructurizeCFGPass ()
 Create the pass. More...
 
FunctionPasscreateBreakCriticalEdgesPass ()
 
PasscreateLoopSimplifyPass ()
 
FunctionPasscreateTailCallEliminationPass ()
 
FunctionPasscreateLowerSwitchPass ()
 
FunctionPasscreateLowerInvokePass ()
 
PasscreateLCSSAPass ()
 
FunctionPasscreateEarlyCSEPass ()
 
FunctionPasscreateMergedLoadStoreMotionPass ()
 createMergedLoadStoreMotionPass - The public interface to this file. More...
 
FunctionPasscreateGVNPass (bool NoLoads=false)
 
FunctionPasscreateMemCpyOptPass ()
 
PasscreateLoopDeletionPass ()
 
FunctionPasscreateConstantHoistingPass ()
 
FunctionPasscreateInstructionNamerPass ()
 
FunctionPasscreateSinkingPass ()
 
PasscreateLowerAtomicPass ()
 
PasscreateCorrelatedValuePropagationPass ()
 
FunctionPasscreateInstructionSimplifierPass ()
 
FunctionPasscreateLowerExpectIntrinsicPass ()
 
FunctionPasscreatePartiallyInlineLibCallsPass ()
 
FunctionPasscreateSampleProfileLoaderPass ()
 
FunctionPasscreateSampleProfileLoaderPass (StringRef Name)
 
FunctionPasscreateScalarizerPass ()
 
FunctionPasscreateAddDiscriminatorsPass ()
 
FunctionPasscreateSeparateConstOffsetFromGEPPass (const TargetMachine *TM=nullptr, bool LowerGEP=false)
 
BasicBlockPasscreateLoadCombinePass ()
 
void ComputeASanStackFrameLayout (SmallVectorImpl< ASanStackVariableDescription > &Vars, size_t Granularity, size_t MinHeaderSize, ASanStackFrameLayout *Layout)
 
void DeleteDeadBlock (BasicBlock *BB)
 
void FoldSingleEntryPHINodes (BasicBlock *BB, Pass *P=nullptr)
 
bool DeleteDeadPHIs (BasicBlock *BB, const TargetLibraryInfo *TLI=nullptr)
 
bool MergeBlockIntoPredecessor (BasicBlock *BB, Pass *P=nullptr)
 
void ReplaceInstWithValue (BasicBlock::InstListType &BIL, BasicBlock::iterator &BI, Value *V)
 
void ReplaceInstWithInst (BasicBlock::InstListType &BIL, BasicBlock::iterator &BI, Instruction *I)
 
void ReplaceInstWithInst (Instruction *From, Instruction *To)
 
BasicBlockSplitCriticalEdge (TerminatorInst *TI, unsigned SuccNum, Pass *P=nullptr, bool MergeIdenticalEdges=false, bool DontDeleteUselessPHIs=false, bool SplitLandingPads=false)
 
BasicBlockSplitCriticalEdge (BasicBlock *BB, succ_iterator SI, Pass *P=nullptr)
 
bool SplitCriticalEdge (BasicBlock *Succ, pred_iterator PI, Pass *P=nullptr)
 
BasicBlockSplitCriticalEdge (BasicBlock *Src, BasicBlock *Dst, Pass *P=nullptr, bool MergeIdenticalEdges=false, bool DontDeleteUselessPHIs=false)
 
unsigned SplitAllCriticalEdges (Function &F, Pass *P)
 
BasicBlockSplitEdge (BasicBlock *From, BasicBlock *To, Pass *P)
 
BasicBlockSplitBlock (BasicBlock *Old, Instruction *SplitPt, Pass *P)
 
BasicBlockSplitBlockPredecessors (BasicBlock *BB, ArrayRef< BasicBlock * > Preds, const char *Suffix, Pass *P=nullptr)
 
void SplitLandingPadPredecessors (BasicBlock *OrigBB, ArrayRef< BasicBlock * > Preds, const char *Suffix, const char *Suffix2, Pass *P, SmallVectorImpl< BasicBlock * > &NewBBs)
 
ReturnInstFoldReturnIntoUncondBranch (ReturnInst *RI, BasicBlock *BB, BasicBlock *Pred)
 
TerminatorInstSplitBlockAndInsertIfThen (Value *Cond, Instruction *SplitBefore, bool Unreachable, MDNode *BranchWeights=nullptr, DominatorTree *DT=nullptr)
 
void SplitBlockAndInsertIfThenElse (Value *Cond, Instruction *SplitBefore, TerminatorInst **ThenTerm, TerminatorInst **ElseTerm, MDNode *BranchWeights=nullptr)
 
ValueGetIfCondition (BasicBlock *BB, BasicBlock *&IfTrue, BasicBlock *&IfFalse)
 
ValueCastToCStr (Value *V, IRBuilder<> &B)
 CastToCStr - Return V if it is an i8*, otherwise cast it to i8*. More...
 
ValueEmitStrLen (Value *Ptr, IRBuilder<> &B, const DataLayout *TD, const TargetLibraryInfo *TLI)
 
ValueEmitStrNLen (Value *Ptr, Value *MaxLen, IRBuilder<> &B, const DataLayout *TD, const TargetLibraryInfo *TLI)
 
ValueEmitStrChr (Value *Ptr, char C, IRBuilder<> &B, const DataLayout *TD, const TargetLibraryInfo *TLI)
 
ValueEmitStrNCmp (Value *Ptr1, Value *Ptr2, Value *Len, IRBuilder<> &B, const DataLayout *TD, const TargetLibraryInfo *TLI)
 EmitStrNCmp - Emit a call to the strncmp function to the builder. More...
 
ValueEmitStrCpy (Value *Dst, Value *Src, IRBuilder<> &B, const DataLayout *TD, const TargetLibraryInfo *TLI, StringRef Name="strcpy")
 
ValueEmitStrNCpy (Value *Dst, Value *Src, Value *Len, IRBuilder<> &B, const DataLayout *TD, const TargetLibraryInfo *TLI, StringRef Name="strncpy")
 
ValueEmitMemCpyChk (Value *Dst, Value *Src, Value *Len, Value *ObjSize, IRBuilder<> &B, const DataLayout *TD, const TargetLibraryInfo *TLI)
 
ValueEmitMemChr (Value *Ptr, Value *Val, Value *Len, IRBuilder<> &B, const DataLayout *TD, const TargetLibraryInfo *TLI)
 
ValueEmitMemCmp (Value *Ptr1, Value *Ptr2, Value *Len, IRBuilder<> &B, const DataLayout *TD, const TargetLibraryInfo *TLI)
 EmitMemCmp - Emit a call to the memcmp function. More...
 
ValueEmitUnaryFloatFnCall (Value *Op, StringRef Name, IRBuilder<> &B, const AttributeSet &Attrs)
 
ValueEmitBinaryFloatFnCall (Value *Op1, Value *Op2, StringRef Name, IRBuilder<> &B, const AttributeSet &Attrs)
 
ValueEmitPutChar (Value *Char, IRBuilder<> &B, const DataLayout *TD, const TargetLibraryInfo *TLI)
 
ValueEmitPutS (Value *Str, IRBuilder<> &B, const DataLayout *TD, const TargetLibraryInfo *TLI)
 
ValueEmitFPutC (Value *Char, Value *File, IRBuilder<> &B, const DataLayout *TD, const TargetLibraryInfo *TLI)
 
ValueEmitFPutS (Value *Str, Value *File, IRBuilder<> &B, const DataLayout *TD, const TargetLibraryInfo *TLI)
 
ValueEmitFWrite (Value *Ptr, Value *Size, Value *File, IRBuilder<> &B, const DataLayout *TD, const TargetLibraryInfo *TLI)
 
bool bypassSlowDivision (Function &F, Function::iterator &I, const DenseMap< unsigned int, unsigned int > &BypassWidth)
 
ModuleCloneModule (const Module *M)
 
ModuleCloneModule (const Module *M, ValueToValueMapTy &VMap)
 
BasicBlockCloneBasicBlock (const BasicBlock *BB, ValueToValueMapTy &VMap, const Twine &NameSuffix="", Function *F=nullptr, ClonedCodeInfo *CodeInfo=nullptr)
 
FunctionCloneFunction (const Function *F, ValueToValueMapTy &VMap, bool ModuleLevelChanges, ClonedCodeInfo *CodeInfo=nullptr)
 
void CloneFunctionInto (Function *NewFunc, const Function *OldFunc, ValueToValueMapTy &VMap, bool ModuleLevelChanges, SmallVectorImpl< ReturnInst * > &Returns, const char *NameSuffix="", ClonedCodeInfo *CodeInfo=nullptr, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr)
 
void CloneAndPruneFunctionInto (Function *NewFunc, const Function *OldFunc, ValueToValueMapTy &VMap, bool ModuleLevelChanges, SmallVectorImpl< ReturnInst * > &Returns, const char *NameSuffix="", ClonedCodeInfo *CodeInfo=nullptr, const DataLayout *DL=nullptr, Instruction *TheCall=nullptr)
 
bool InlineFunction (CallInst *C, InlineFunctionInfo &IFI, bool InsertLifetime=true)
 
bool InlineFunction (InvokeInst *II, InlineFunctionInfo &IFI, bool InsertLifetime=true)
 
bool InlineFunction (CallSite CS, InlineFunctionInfo &IFI, bool InsertLifetime=true)
 
unsigned getICmpCode (const ICmpInst *ICI, bool InvertPred=false)
 
ValuegetICmpValue (bool Sign, unsigned Code, Value *LHS, Value *RHS, CmpInst::Predicate &NewICmpPred)
 
bool PredicatesFoldable (CmpInst::Predicate p1, CmpInst::Predicate p2)
 
bool optimizeGlobalCtorsList (Module &M, function_ref< bool(Function *)> ShouldRemove)
 
bool isSafeToDestroyConstant (const Constant *C)
 
bool expandRemainder (BinaryOperator *Rem)
 Replace Rem with generated code. More...
 
bool expandDivision (BinaryOperator *Div)
 Replace Div with generated code. More...
 
bool expandRemainderUpTo32Bits (BinaryOperator *Rem)
 Replace Rem with generated code. More...
 
bool expandRemainderUpTo64Bits (BinaryOperator *Rem)
 Replace Rem with generated code. More...
 
bool expandDivisionUpTo32Bits (BinaryOperator *Div)
 Replace Rem with generated code. More...
 
bool expandDivisionUpTo64Bits (BinaryOperator *Div)
 Replace Rem with generated code. More...
 
bool ConstantFoldTerminator (BasicBlock *BB, bool DeleteDeadConditions=false, const TargetLibraryInfo *TLI=nullptr)
 
bool isInstructionTriviallyDead (Instruction *I, const TargetLibraryInfo *TLI=nullptr)
 
bool RecursivelyDeleteTriviallyDeadInstructions (Value *V, const TargetLibraryInfo *TLI=nullptr)
 
bool RecursivelyDeleteDeadPHINode (PHINode *PN, const TargetLibraryInfo *TLI=nullptr)
 
bool SimplifyInstructionsInBlock (BasicBlock *BB, const DataLayout *TD=nullptr, const TargetLibraryInfo *TLI=nullptr)
 
void RemovePredecessorAndSimplify (BasicBlock *BB, BasicBlock *Pred, DataLayout *TD=nullptr)
 
void MergeBasicBlockIntoOnlyPred (BasicBlock *BB, Pass *P=nullptr)
 
bool TryToSimplifyUncondBranchFromEmptyBlock (BasicBlock *BB)
 
bool EliminateDuplicatePHINodes (BasicBlock *BB)
 
bool SimplifyCFG (BasicBlock *BB, const TargetTransformInfo &TTI, unsigned BonusInstThreshold, const DataLayout *TD=nullptr, AssumptionCache *AC=nullptr)
 
bool FlattenCFG (BasicBlock *BB, AliasAnalysis *AA=nullptr)
 
bool FoldBranchToCommonDest (BranchInst *BI, const DataLayout *DL=nullptr, unsigned BonusInstThreshold=1)
 
AllocaInstDemoteRegToStack (Instruction &X, bool VolatileLoads=false, Instruction *AllocaPoint=nullptr)
 
AllocaInstDemotePHIToStack (PHINode *P, Instruction *AllocaPoint=nullptr)
 
unsigned getOrEnforceKnownAlignment (Value *V, unsigned PrefAlign, const DataLayout *TD=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr)
 
static unsigned getKnownAlignment (Value *V, const DataLayout *TD=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr)
 getKnownAlignment - Try to infer an alignment for the specified pointer. More...
 
template<typename IRBuilderTy >
ValueEmitGEPOffset (IRBuilderTy *Builder, const DataLayout &TD, User *GEP, bool NoAssumptions=false)
 
bool ConvertDebugDeclareToDebugValue (DbgDeclareInst *DDI, StoreInst *SI, DIBuilder &Builder)
 
bool ConvertDebugDeclareToDebugValue (DbgDeclareInst *DDI, LoadInst *LI, DIBuilder &Builder)
 
bool LowerDbgDeclare (Function &F)
 
DbgDeclareInstFindAllocaDbgDeclare (Value *V)
 
bool replaceDbgDeclareForAlloca (AllocaInst *AI, Value *NewAllocaAddress, DIBuilder &Builder)
 
bool removeUnreachableBlocks (Function &F)
 Remove all blocks that can not be reached from the function's entry. More...
 
void combineMetadata (Instruction *K, const Instruction *J, ArrayRef< unsigned > KnownIDs)
 Combine the metadata of two instructions so that K can replace J. More...
 
BasicBlockInsertPreheaderForLoop (Loop *L, Pass *P)
 
bool simplifyLoop (Loop *L, DominatorTree *DT, LoopInfo *LI, Pass *PP, AliasAnalysis *AA=nullptr, ScalarEvolution *SE=nullptr, const DataLayout *DL=nullptr, AssumptionCache *AC=nullptr)
 Simplify each loop in a loop nest recursively. More...
 
bool formLCSSA (Loop &L, DominatorTree &DT, LoopInfo *LI, ScalarEvolution *SE=nullptr)
 Put loop into LCSSA form. More...
 
bool formLCSSARecursively (Loop &L, DominatorTree &DT, LoopInfo *LI, ScalarEvolution *SE=nullptr)
 Put a loop nest into LCSSA form. More...
 
void appendToGlobalCtors (Module &M, Function *F, int Priority)
 
void appendToGlobalDtors (Module &M, Function *F, int Priority)
 Same as appendToGlobalCtors(), but for global dtors. More...
 
GlobalVariablecollectUsedGlobalVariables (Module &M, SmallPtrSetImpl< GlobalValue * > &Set, bool CompilerUsed)
 Given "llvm.used" or "llvm.compiler.used" as a global name, collect the initializer elements of that global in Set and return the global itself. More...
 
bool isAllocaPromotable (const AllocaInst *AI)
 Return true if this alloca is legal for promotion. More...
 
void PromoteMemToReg (ArrayRef< AllocaInst * > Allocas, DominatorTree &DT, AliasSetTracker *AST=nullptr, AssumptionCache *AC=nullptr)
 Promote the specified list of alloca instructions into scalar registers, inserting PHI nodes as appropriate. More...
 
bool simplifyUsersOfIV (PHINode *CurrIV, ScalarEvolution *SE, LPPassManager *LPM, SmallVectorImpl< WeakVH > &Dead, IVVisitor *V=nullptr)
 
bool simplifyLoopIVs (Loop *L, ScalarEvolution *SE, LPPassManager *LPM, SmallVectorImpl< WeakVH > &Dead)
 
ModulePasscreateRewriteSymbolsPass ()
 
ModulePasscreateRewriteSymbolsPass (SymbolRewriter::RewriteDescriptorList &)
 
PasscreateUnifyFunctionExitNodesPass ()
 
bool UnrollLoop (Loop *L, unsigned Count, unsigned TripCount, bool AllowRuntime, unsigned TripMultiple, LoopInfo *LI, Pass *PP, LPPassManager *LPM, AssumptionCache *AC)
 
bool UnrollRuntimeLoopProlog (Loop *L, unsigned Count, LoopInfo *LI, LPPassManager *LPM)
 
static RemapFlags operator| (RemapFlags LHS, RemapFlags RHS)
 
ValueMapValue (const Value *V, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr)
 
MetadataMapMetadata (const Metadata *MD, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr)
 
MDNodeMapMetadata (const MDNode *MD, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr)
 MapMetadata - provide versions that preserve type safety for MDNodes. More...
 
void RemapInstruction (Instruction *I, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr)
 
ConstantMapValue (const Constant *V, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr)
 MapValue - provide versions that preserve type safety for Constants. More...
 
static bool isTriviallyVectorizable (Intrinsic::ID ID)
 Identify if the intrinsic is trivially vectorizable. More...
 
static bool hasVectorInstrinsicScalarOpd (Intrinsic::ID ID, unsigned ScalarOpdIdx)
 
static Intrinsic::ID checkUnaryFloatSignature (const CallInst &I, Intrinsic::ID ValidIntrinsicID)
 
static Intrinsic::ID checkBinaryFloatSignature (const CallInst &I, Intrinsic::ID ValidIntrinsicID)
 
static Intrinsic::ID getIntrinsicIDForCall (CallInst *CI, const TargetLibraryInfo *TLI)
 
BasicBlockPasscreateBBVectorizePass (const VectorizeConfig &C=VectorizeConfig())
 
PasscreateLoopVectorizePass (bool NoUnrolling=false, bool AlwaysVectorize=true)
 
PasscreateSLPVectorizerPass ()
 
bool vectorizeBasicBlock (Pass *P, BasicBlock &BB, const VectorizeConfig &C=VectorizeConfig())
 Vectorize the BasicBlock. More...
 
FunctionPasscreateFunctionTargetTransformInfoPass ()
 
raw_ostreamoperator<< (raw_ostream &OS, const LVILatticeVal &Val) LLVM_ATTRIBUTE_USED
 
void calculateDbgValueHistory (const MachineFunction *MF, const TargetRegisterInfo *TRI, DbgValueHistoryMap &Result)
 
bool operator== (const DebugLocEntry::Value &A, const DebugLocEntry::Value &B)
 Compare two Values for equality. More...
 
bool operator< (const DebugLocEntry::Value &A, const DebugLocEntry::Value &B)
 Compare two pieces based on their offset. More...
 
static const ConstantExprgetMergedGlobalExpr (const Value *V)
 
static void EmitLabelDiff (MCStreamer &Streamer, const MCSymbol *From, const MCSymbol *To, unsigned int Size=4)
 
template<>
raw_ostreamWriteGraph (raw_ostream &O, const EdgeBundles &G, bool ShortNames, const Twine &Title)
 
SpillercreateInlineSpiller (MachineFunctionPass &pass, MachineFunction &mf, VirtRegMap &vrm)
 
 TEMPLATE_INSTANTIATION (class DomTreeNodeBase< MachineBasicBlock >)
 
 TEMPLATE_INSTANTIATION (class DominatorTreeBase< MachineBasicBlock >)
 
FunctionPasscreateMachineRegionInfoPass ()
 
cl::opt< boolForceTopDown ("misched-topdown", cl::Hidden, cl::desc("Force top-down list scheduling"))
 
cl::opt< boolForceBottomUp ("misched-bottomup", cl::Hidden, cl::desc("Force bottom-up list scheduling"))
 
MachineBasicBlock::iterator findPHICopyInsertPoint (MachineBasicBlock *MBB, MachineBasicBlock *SuccMBB, unsigned SrcReg)
 
void __register_frame (void *p)
 
void __deregister_frame (void *p)
 
static int jit_noop ()
 
static void dumpSectionMemory (const SectionEntry &S, StringRef State)
 
static std::error_code getOffset (const SymbolRef &Sym, uint64_t &Result)
 
static uint64_t computeAllocationSizeForSections (std::vector< uint64_t > &SectionSizes, uint64_t Alignment)
 
static bool isRequiredForExecution (const SectionRef &Section)
 
static bool isReadOnlyData (const SectionRef &Section)
 
static bool isZeroInit (const SectionRef &Section)
 
static std::unique_ptr
< RuntimeDyldELF
createRuntimeDyldELF (RTDyldMemoryManager *MM, bool ProcessAllSections, RuntimeDyldCheckerImpl *Checker)
 
static std::unique_ptr
< RuntimeDyldMachO
createRuntimeDyldMachO (Triple::ArchType Arch, RTDyldMemoryManager *MM, bool ProcessAllSections, RuntimeDyldCheckerImpl *Checker)
 
static uint16_t applyPPClo (uint64_t value)
 
static uint16_t applyPPChi (uint64_t value)
 
static uint16_t applyPPCha (uint64_t value)
 
static uint16_t applyPPChigher (uint64_t value)
 
static uint16_t applyPPChighera (uint64_t value)
 
static uint16_t applyPPChighest (uint64_t value)
 
static uint16_t applyPPChighesta (uint64_t value)
 
static int64_t computeDelta (SectionEntry *A, SectionEntry *B)
 
SlotTrackercreateSlotTracker (const Module *M)
 Create a new SlotTracker for a Module. More...
 
static SlotTrackercreateSlotTracker (const Value *V)
 
static void WriteAsOperandInternal (raw_ostream &Out, const Value *V, TypePrinting *TypePrinter, SlotTracker *Machine, const Module *Context)
 
static void WriteAsOperandInternal (raw_ostream &Out, const Metadata *MD, TypePrinting *TypePrinter, SlotTracker *Machine, const Module *Context, bool FromValue=false)
 
static const char * getPredicateText (unsigned predicate)
 
static void writeAtomicRMWOperation (raw_ostream &Out, AtomicRMWInst::BinOp Op)
 
static void WriteOptimizationInfo (raw_ostream &Out, const User *U)
 
static void WriteConstantInternal (raw_ostream &Out, const Constant *CV, TypePrinting &TypePrinter, SlotTracker *Machine, const Module *Context)
 
static void writeMDTuple (raw_ostream &Out, const MDTuple *Node, TypePrinting *TypePrinter, SlotTracker *Machine, const Module *Context)
 
static void writeMDLocation (raw_ostream &Out, const MDLocation *DL, TypePrinting *TypePrinter, SlotTracker *Machine, const Module *Context)
 
static void WriteMDNodeBodyInternal (raw_ostream &Out, const MDNode *Node, TypePrinting *TypePrinter, SlotTracker *Machine, const Module *Context)
 
static void PrintLinkage (GlobalValue::LinkageTypes LT, formatted_raw_ostream &Out)
 
static void PrintVisibility (GlobalValue::VisibilityTypes Vis, formatted_raw_ostream &Out)
 
static void PrintDLLStorageClass (GlobalValue::DLLStorageClassTypes SCT, formatted_raw_ostream &Out)
 
static void PrintThreadLocalModel (GlobalVariable::ThreadLocalMode TLM, formatted_raw_ostream &Out)
 
static void maybePrintComdat (formatted_raw_ostream &Out, const GlobalObject &GO)
 
static void WriteMDNodeComment (const MDNode *Node, formatted_raw_ostream &Out)
 
ConstantConstantFoldCastInstruction (unsigned opcode, Constant *V, Type *DestTy)
 
ConstantConstantFoldSelectInstruction (Constant *Cond, Constant *V1, Constant *V2)
 
ConstantConstantFoldExtractElementInstruction (Constant *Val, Constant *Idx)
 
ConstantConstantFoldInsertElementInstruction (Constant *Val, Constant *Elt, Constant *Idx)
 
ConstantConstantFoldShuffleVectorInstruction (Constant *V1, Constant *V2, Constant *Mask)
 
ConstantConstantFoldExtractValueInstruction (Constant *Agg, ArrayRef< unsigned > Idxs)
 
ConstantConstantFoldBinaryInstruction (unsigned Opcode, Constant *V1, Constant *V2)
 
ConstantConstantFoldCompareInstruction (unsigned short predicate, Constant *C1, Constant *C2)
 
ConstantConstantFoldGetElementPtr (Constant *C, bool inBounds, ArrayRef< Constant * > Idxs)
 
ConstantConstantFoldGetElementPtr (Constant *C, bool inBounds, ArrayRef< Value * > Idxs)
 
static const Metadataget_hashable_data (const MDOperand &X)
 Make MDOperand transparent for hashing. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const MCFixup &AF)
 
MCAsmParserExtensioncreateDarwinAsmParser ()
 
MCAsmParserExtensioncreateELFAsmParser ()
 
MCAsmParserExtensioncreateCOFFAsmParser ()
 
static uint8_t CountOfUnwindCodes (std::vector< WinEH::Instruction > &Insns)
 
static void EmitAbsDifference (MCStreamer &Streamer, const MCSymbol *LHS, const MCSymbol *RHS)
 
static void EmitUnwindCode (MCStreamer &streamer, const MCSymbol *begin, WinEH::Instruction &inst)
 
static void EmitSymbolRefWithOfs (MCStreamer &streamer, const MCSymbol *Base, const MCSymbol *Other)
 
static void EmitRuntimeFunction (MCStreamer &streamer, const WinEH::FrameInfo *info)
 
static void EmitUnwindInfo (MCStreamer &streamer, WinEH::FrameInfo *info)
 
bool ConvertUTF8toWide (unsigned WideCharWidth, llvm::StringRef Source, char *&ResultPtr, const UTF8 *&ErrorPtr)
 
bool ConvertCodePointToUTF8 (unsigned Source, char *&ResultPtr)
 
bool hasUTF16ByteOrderMark (ArrayRef< char > S)
 
bool convertUTF16ToUTF8String (ArrayRef< char > SrcBytes, std::string &Out)
 
void * SearchForAddressOfSpecialSymbol (const char *symbolName)
 
raw_ostreamCreateInfoOutputFile ()
 
template<class T >
SmallVectorImpl< T >::const_pointer c_str (SmallVectorImpl< T > &str)
 
static void PrintMessage (ArrayRef< SMLoc > Loc, SourceMgr::DiagKind Kind, const Twine &Msg)
 
FunctionPasscreateAArch64DeadRegisterDefinitions ()
 
FunctionPasscreateAArch64ConditionalCompares ()
 
FunctionPasscreateAArch64AdvSIMDScalar ()
 
FunctionPasscreateAArch64BranchRelaxation ()
 
FunctionPasscreateAArch64ISelDag (AArch64TargetMachine &TM, CodeGenOpt::Level OptLevel)
 
FunctionPasscreateAArch64StorePairSuppressPass ()
 
FunctionPasscreateAArch64ExpandPseudoPass ()
 Returns an instance of the pseudo instruction expansion pass. More...
 
FunctionPasscreateAArch64LoadStoreOptimizationPass ()
 
ModulePasscreateAArch64PromoteConstantPass ()
 
FunctionPasscreateAArch64ConditionOptimizerPass ()
 
FunctionPasscreateAArch64AddressTypePromotionPass ()
 
FunctionPasscreateAArch64A57FPLoadBalancing ()
 
FunctionPasscreateAArch64A53Fix835769 ()
 
ImmutablePasscreateAArch64TargetTransformInfoPass (const AArch64TargetMachine *TM)
 Creates an ARM-specific Target Transformation Info pass. More...
 
FunctionPasscreateAArch64CleanupLocalDynamicTLSPass ()
 
FunctionPasscreateAArch64CollectLOHPass ()
 
void initializeAArch64AddressTypePromotionPass (PassRegistry &)
 
void initializeAArch64CollectLOHPass (PassRegistry &)
 
void initializeAArch64ConditionalComparesPass (PassRegistry &)
 
void initializeAArch64ConditionOptimizerPass (PassRegistry &)
 
void emitFrameOffset (MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, DebugLoc DL, unsigned DestReg, unsigned SrcReg, int Offset, const TargetInstrInfo *TII, MachineInstr::MIFlag=MachineInstr::NoFlags, bool SetNZCV=false)
 
bool rewriteAArch64FrameIndex (MachineInstr &MI, unsigned FrameRegIdx, unsigned FrameReg, int &Offset, const AArch64InstrInfo *TII)
 
int isAArch64FrameOffsetLegal (const MachineInstr &MI, int &Offset, bool *OutUseUnscaledOp=nullptr, unsigned *OutUnscaledOp=nullptr, int *EmittableOffset=nullptr)
 Check if the Offset is a valid frame offset for MI. The returned value reports the validity of the frame offset for MI. It uses the values defined by AArch64FrameOffsetStatus for that. If result == AArch64FrameOffsetCannotUpdate, MI cannot be updated to use an offset.eq If result & AArch64FrameOffsetIsLegal, Offset can completely be rewriten in MI. If result & AArch64FrameOffsetCanUpdate, Offset contains the amount that is off the limit of the legal offset. If set, OutUseUnscaledOp will contain the whether MI should be turned into an unscaled operator, which opcode is in OutUnscaledOp. If set, EmittableOffset contains the amount that can be set in MI (possibly with OutUnscaledOp if OutUseUnscaledOp is true) and that is a legal offset. More...
 
static bool isUncondBranchOpcode (int Opc)
 
static bool isCondBranchOpcode (int Opc)
 
static bool isIndirectBranchOpcode (int Opc)
 
void initializeAArch64PromoteConstantPass (PassRegistry &)
 
void initializeAArch64TTIPass (PassRegistry &)
 
MCStreamercreateAArch64MCAsmStreamer (MCContext &Ctx, formatted_raw_ostream &OS, bool isVerboseAsm, bool useDwarfDirectory, MCInstPrinter *InstPrint, MCCodeEmitter *CE, MCAsmBackend *TAB, bool ShowInst)
 
MCELFStreamercreateAArch64ELFStreamer (MCContext &Context, MCAsmBackend &TAB, raw_ostream &OS, MCCodeEmitter *Emitter, bool RelaxAll)
 
MCCodeEmittercreateAArch64MCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI, MCContext &Ctx)
 
MCAsmBackendcreateAArch64leAsmBackend (const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)
 
MCAsmBackendcreateAArch64beAsmBackend (const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)
 
MCObjectWritercreateAArch64ELFObjectWriter (raw_ostream &OS, uint8_t OSABI, bool IsLittleEndian)
 
MCObjectWritercreateAArch64MachObjectWriter (raw_ostream &OS, uint32_t CPUType, uint32_t CPUSubtype)
 
static unsigned getWRegFromXReg (unsigned Reg)
 
static unsigned getXRegFromWReg (unsigned Reg)
 
static unsigned getBRegFromDReg (unsigned Reg)
 
static unsigned getDRegFromBReg (unsigned Reg)
 
static const char * AArch64VectorLayoutToString (AArch64Layout::VectorLayout Layout)
 
static AArch64Layout::VectorLayout AArch64StringToVectorLayout (StringRef LayoutStr)
 
FunctionPasscreateARMISelDag (ARMBaseTargetMachine &TM, CodeGenOpt::Level OptLevel)
 
FunctionPasscreateA15SDOptimizerPass ()
 
FunctionPasscreateARMLoadStoreOptimizationPass (bool PreAlloc=false)
 
FunctionPasscreateARMExpandPseudoPass ()
 
FunctionPasscreateARMGlobalBaseRegPass ()
 
FunctionPasscreateARMGlobalMergePass (const TargetLowering *tli)
 
FunctionPasscreateARMConstantIslandPass ()
 
FunctionPasscreateMLxExpansionPass ()
 
FunctionPasscreateThumb2ITBlockPass ()
 
FunctionPasscreateARMOptimizeBarriersPass ()
 
FunctionPasscreateThumb2SizeReductionPass ()
 
ImmutablePasscreateARMTargetTransformInfoPass (const ARMBaseTargetMachine *TM)
 Creates an ARM-specific Target Transformation Info pass. More...
 
void LowerARMMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, ARMAsmPrinter &AP)
 
template<>
bool IsCPSRDead< MachineInstr > (MachineInstr *MI)
 
static const MachineInstrBuilderAddDefaultPred (const MachineInstrBuilder &MIB)
 
static const MachineInstrBuilderAddDefaultCC (const MachineInstrBuilder &MIB)
 
static const MachineInstrBuilderAddDefaultT1CC (const MachineInstrBuilder &MIB, bool isDead=false)
 
static const MachineInstrBuilderAddNoT1CC (const MachineInstrBuilder &MIB)
 
static bool isUncondBranchOpcode (int Opc)
 
static bool isCondBranchOpcode (int Opc)
 
static bool isJumpTableBranchOpcode (int Opc)
 
static bool isIndirectBranchOpcode (int Opc)
 
static bool isPopOpcode (int Opc)
 
static bool isPushOpcode (int Opc)
 
ARMCC::CondCodes getInstrPredicate (const MachineInstr *MI, unsigned &PredReg)
 
int getMatchingCondBranchOpcode (int Opc)
 
unsigned canFoldARMInstrIntoMOVCC (unsigned Reg, MachineInstr *&MI, const MachineRegisterInfo &MRI)
 
unsigned convertAddSubFlagsOpcode (unsigned OldOpc)
 
void emitARMRegPlusImmediate (MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, DebugLoc dl, unsigned DestReg, unsigned BaseReg, int NumBytes, ARMCC::CondCodes Pred, unsigned PredReg, const ARMBaseInstrInfo &TII, unsigned MIFlags=0)
 
void emitT2RegPlusImmediate (MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, DebugLoc dl, unsigned DestReg, unsigned BaseReg, int NumBytes, ARMCC::CondCodes Pred, unsigned PredReg, const ARMBaseInstrInfo &TII, unsigned MIFlags=0)
 
void emitThumbRegPlusImmediate (MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, DebugLoc dl, unsigned DestReg, unsigned BaseReg, int NumBytes, const TargetInstrInfo &TII, const ARMBaseRegisterInfo &MRI, unsigned MIFlags=0)
 
bool tryFoldSPUpdateIntoPushPop (const ARMSubtarget &Subtarget, MachineFunction &MF, MachineInstr *MI, unsigned NumBytes)
 
bool rewriteARMFrameIndex (MachineInstr &MI, unsigned FrameRegIdx, unsigned FrameReg, int &Offset, const ARMBaseInstrInfo &TII)
 
bool rewriteT2FrameIndex (MachineInstr &MI, unsigned FrameRegIdx, unsigned FrameReg, int &Offset, const ARMBaseInstrInfo &TII)
 
static bool isARMArea1Register (unsigned Reg, bool isIOS)
 
static bool isARMArea2Register (unsigned Reg, bool isIOS)
 
static bool isARMArea3Register (unsigned Reg, bool isIOS)
 
static bool isCalleeSavedRegister (unsigned Reg, const MCPhysReg *CSRegs)
 
static bool f64AssignAPCS (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, CCState &State, bool CanFail)
 
static bool CC_ARM_APCS_Custom_f64 (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
static bool f64AssignAAPCS (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, CCState &State, bool CanFail)
 
static bool CC_ARM_AAPCS_Custom_f64 (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
static bool f64RetAssign (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, CCState &State)
 
static bool RetCC_ARM_APCS_Custom_f64 (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
static bool RetCC_ARM_AAPCS_Custom_f64 (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
static bool CC_ARM_AAPCS_Custom_HA (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
raw_ostreamoperator<< (raw_ostream &O, const ARMConstantPoolValue &V)
 
template<typename InstrType >
bool IsCPSRDead (InstrType *Instr)
 
template<typename InstrType >
bool isV8EligibleForIT (InstrType *Instr)
 
void initializeARMTTIPass (PassRegistry &)
 
template<>
bool IsCPSRDead< MCInst > (MCInst *Instr)
 
static const char * ARMCondCodeToString (ARMCC::CondCodes CC)
 
static bool isARMLowRegister (unsigned Reg)
 
MCStreamercreateMCAsmStreamer (MCContext &Ctx, formatted_raw_ostream &OS, bool isVerboseAsm, bool useDwarfDirectory, MCInstPrinter *InstPrint, MCCodeEmitter *CE, MCAsmBackend *TAB, bool ShowInst)
 
MCStreamercreateARMNullStreamer (MCContext &Ctx)
 
MCCodeEmittercreateARMLEMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI, MCContext &Ctx)
 
MCCodeEmittercreateARMBEMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI, MCContext &Ctx)
 
MCAsmBackendcreateARMAsmBackend (const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU, bool IsLittleEndian)
 
MCAsmBackendcreateARMLEAsmBackend (const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)
 
MCAsmBackendcreateARMBEAsmBackend (const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)
 
MCAsmBackendcreateThumbLEAsmBackend (const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)
 
MCAsmBackendcreateThumbBEAsmBackend (const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)
 
MCStreamercreateARMWinCOFFStreamer (MCContext &Context, MCAsmBackend &MAB, MCCodeEmitter &Emitter, raw_ostream &OS)
 
MCObjectWritercreateARMELFObjectWriter (raw_ostream &OS, uint8_t OSABI, bool IsLittleEndian)
 createARMELFObjectWriter - Construct an ELF Mach-O object writer. More...
 
MCObjectWritercreateARMMachObjectWriter (raw_ostream &OS, bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype)
 createARMMachObjectWriter - Construct an ARM Mach-O object writer. More...
 
MCObjectWritercreateARMWinCOFFObjectWriter (raw_ostream &OS, bool Is64Bit)
 createARMWinCOFFObjectWriter - Construct an ARM PE/COFF object writer. More...
 
MCRelocationInfocreateARMMachORelocationInfo (MCContext &Ctx)
 createARMMachORelocationInfo - Construct ARM Mach-O relocation info. More...
 
ARMCC::CondCodes getITInstrPredicate (const MachineInstr *MI, unsigned &PredReg)
 
FunctionPasscreateHexagonISelDag (HexagonTargetMachine &TM, CodeGenOpt::Level OptLevel)
 
FunctionPasscreateHexagonDelaySlotFillerPass (const TargetMachine &TM)
 
FunctionPasscreateHexagonFPMoverPass (const TargetMachine &TM)
 
FunctionPasscreateHexagonRemoveExtendArgs (const HexagonTargetMachine &TM)
 
FunctionPasscreateHexagonCFGOptimizer (const HexagonTargetMachine &TM)
 
FunctionPasscreateHexagonSplitTFRCondSets (const HexagonTargetMachine &TM)
 
FunctionPasscreateHexagonSplitConst32AndConst64 (const HexagonTargetMachine &TM)
 
FunctionPasscreateHexagonExpandPredSpillCode (const HexagonTargetMachine &TM)
 
FunctionPasscreateHexagonHardwareLoops ()
 
FunctionPasscreateHexagonPeephole ()
 
FunctionPasscreateHexagonFixupHwLoops ()
 
FunctionPasscreateHexagonNewValueJump ()
 
FunctionPasscreateHexagonCopyToCombine ()
 
FunctionPasscreateHexagonPacketizer ()
 
void HexagonLowerToMC (const MachineInstr *MI, HexagonMCInst &MCI, HexagonAsmPrinter &AP)
 
void initializeHexagonCFGOptimizerPass (PassRegistry &)
 
void initializeHexagonCopyToCombinePass (PassRegistry &)
 
void initializeHexagonExpandPredSpillCodePass (PassRegistry &)
 
void initializeHexagonFixupHwLoopsPass (PassRegistry &)
 
void initializeHexagonHardwareLoopsPass (PassRegistry &)
 
void initializeHexagonDAGToDAGISelPass (PassRegistry &)
 
bool isPositiveHalfWord (SDNode *N)
 
void initializeHexagonNewValueJumpPass (PassRegistry &)
 
void initializeHexagonPeepholePass (PassRegistry &)
 
void initializeHexagonRemoveExtendArgsPass (PassRegistry &)
 
void initializeHexagonSplitTFRCondSetsPass (PassRegistry &)
 
void initializeHexagonPacketizerPass (PassRegistry &)
 
MCAsmBackendcreateHexagonAsmBackend (Target const &T, MCRegisterInfo const &, StringRef TT, StringRef)
 
MCCodeEmittercreateHexagonMCCodeEmitter (MCInstrInfo const &MCII, MCRegisterInfo const &MRI, MCSubtargetInfo const &MST, MCContext &MCT)
 
MCObjectWritercreateHexagonELFObjectWriter (raw_ostream &OS, uint8_t OSABI, StringRef CPU)
 
MCStreameroperator<< (MCStreamer &OS, MipsABIFlagsSection &ABIFlagsSection)
 
MCELFStreamercreateMipsELFStreamer (MCContext &Context, MCAsmBackend &MAB, raw_ostream &OS, MCCodeEmitter *Emitter, const MCSubtargetInfo &STI, bool RelaxAll)
 
MCCodeEmittercreateMipsMCCodeEmitterEB (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI, MCContext &Ctx)
 
MCCodeEmittercreateMipsMCCodeEmitterEL (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI, MCContext &Ctx)
 
bool isBasePlusOffsetMemoryAccess (unsigned Opcode, unsigned *AddrIdx, bool *IsStore=nullptr)
 
bool baseRegNeedsLoadStoreMask (unsigned Reg)
 
MCELFStreamercreateMipsNaClELFStreamer (MCContext &Context, MCAsmBackend &TAB, raw_ostream &OS, MCCodeEmitter *Emitter, const MCSubtargetInfo &STI, bool RelaxAll)
 
MCAsmBackendcreateMipsAsmBackendEB32 (const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)
 
MCAsmBackendcreateMipsAsmBackendEL32 (const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)
 
MCAsmBackendcreateMipsAsmBackendEB64 (const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)
 
MCAsmBackendcreateMipsAsmBackendEL64 (const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)
 
MCObjectWritercreateMipsELFObjectWriter (raw_ostream &OS, uint8_t OSABI, bool IsLittleEndian, bool Is64Bit)
 
FunctionPasscreateMipsISelDag (MipsTargetMachine &TM)
 
FunctionPasscreateMipsOptimizePICCallPass (MipsTargetMachine &TM)
 Return an OptimizeCall object. More...
 
FunctionPasscreateMipsDelaySlotFillerPass (MipsTargetMachine &TM)
 
FunctionPasscreateMipsLongBranchPass (MipsTargetMachine &TM)
 
FunctionPasscreateMipsConstantIslandPass (MipsTargetMachine &tm)
 
ModulePasscreateMips16HardFloat (MipsTargetMachine &TM)
 
FunctionPasscreateMips16ISelDag (MipsTargetMachine &TM)
 
const MipsFrameLoweringcreateMips16FrameLowering (const MipsSubtarget &ST)
 Create MipsFrameLowering objects. More...
 
const MipsFrameLoweringcreateMipsSEFrameLowering (const MipsSubtarget &ST)
 
const MipsInstrInfocreateMips16InstrInfo (const MipsSubtarget &STI)
 Create MipsInstrInfo objects. More...
 
const MipsInstrInfocreateMipsSEInstrInfo (const MipsSubtarget &STI)
 
const MipsTargetLoweringcreateMips16TargetLowering (const MipsTargetMachine &TM, const MipsSubtarget &STI)
 Create MipsTargetLowering objects. More...
 
const MipsTargetLoweringcreateMipsSETargetLowering (const MipsTargetMachine &TM, const MipsSubtarget &STI)
 
FunctionPasscreateMipsModuleISelDag (MipsTargetMachine &TM)
 
ModulePasscreateMipsOs16 (MipsTargetMachine &TM)
 
FunctionPasscreateMipsSEISelDag (MipsTargetMachine &TM)
 
FunctionPasscreateMSP430ISelDag (MSP430TargetMachine &TM, CodeGenOpt::Level OptLevel)
 
FunctionPasscreateMSP430BranchSelectionPass ()
 
static const char * NVPTXCondCodeToString (NVPTXCC::CondCodes CC)
 
ImmutablePasscreateNVPTXTargetTransformInfoPass (const NVPTXTargetMachine *TM)
 
FunctionPasscreateNVPTXISelDag (NVPTXTargetMachine &TM, llvm::CodeGenOpt::Level OptLevel)
 
ModulePasscreateNVPTXAssignValidGlobalNamesPass ()
 
ModulePasscreateGenericToNVVMPass ()
 
FunctionPasscreateNVPTXFavorNonGenericAddrSpacesPass ()
 
ModulePasscreateNVVMReflectPass ()
 
ModulePasscreateNVVMReflectPass (const StringMap< int > &Mapping)
 
MachineFunctionPasscreateNVPTXPrologEpilogPass ()
 
MachineFunctionPasscreateNVPTXReplaceImageHandlesPass ()
 
FunctionPasscreateNVPTXImageOptimizerPass ()
 
FunctionPasscreateNVPTXLowerStructArgsPass ()
 
bool isImageOrSamplerVal (const Value *, const Module *)
 
FunctionPasscreateAllocaHoisting ()
 
void initializeNVPTXAssignValidGlobalNamesPass (PassRegistry &)
 
void initializeNVPTXFavorNonGenericAddrSpacesPass (PassRegistry &)
 
void initializeGenericToNVVMPass (PassRegistry &)
 
FunctionPasscreateLowerAggrCopies ()
 
void initializeNVPTXLowerStructArgsPass (PassRegistry &)
 
std::string getNVPTXRegClassName (TargetRegisterClass const *RC)
 
std::string getNVPTXRegClassStr (TargetRegisterClass const *RC)
 
void initializeNVVMReflectPass (PassRegistry &)
 
void initializeNVPTXTTIPass (PassRegistry &)
 
bool isParamLoad (const MachineInstr *MI)
 
static int encode_leb128 (uint64_t val, int *nbytes, char *space, int splen)
 
uint64_t encode_leb128 (const char *str)
 
void clearAnnotationCache (const llvm::Module *)
 
bool findOneNVVMAnnotation (const llvm::GlobalValue *, std::string, unsigned &)
 
bool findAllNVVMAnnotation (const llvm::GlobalValue *, std::string, std::vector< unsigned > &)
 
bool isTexture (const llvm::Value &)
 
bool isSurface (const llvm::Value &)
 
bool isSampler (const llvm::Value &)
 
bool isImage (const llvm::Value &)
 
bool isImageReadOnly (const llvm::Value &)
 
bool isImageWriteOnly (const llvm::Value &)
 
bool isImageReadWrite (const llvm::Value &)
 
bool isManaged (const llvm::Value &)
 
std::string getTextureName (const llvm::Value &)
 
std::string getSurfaceName (const llvm::Value &)
 
std::string getSamplerName (const llvm::Value &)
 
bool getMaxNTIDx (const llvm::Function &, unsigned &)
 
bool getMaxNTIDy (const llvm::Function &, unsigned &)
 
bool getMaxNTIDz (const llvm::Function &, unsigned &)
 
bool getReqNTIDx (const llvm::Function &, unsigned &)
 
bool getReqNTIDy (const llvm::Function &, unsigned &)
 
bool getReqNTIDz (const llvm::Function &, unsigned &)
 
bool getMinCTASm (const llvm::Function &, unsigned &)
 
bool isKernelFunction (const llvm::Function &)
 
bool getAlign (const llvm::Function &, unsigned index, unsigned &)
 
bool getAlign (const llvm::CallInst &, unsigned index, unsigned &)
 
bool isBarrierIntrinsic (llvm::Intrinsic::ID)
 
template<typename T >
std::vector< Tmake_vector (T A,...)
 
bool isMemorySpaceTransferIntrinsic (Intrinsic::ID id)
 
const ValueskipPointerTransfer (const Value *V, bool ignore_GEP_indices)
 
const ValueskipPointerTransfer (const Value *V, std::set< const Value * > &processed)
 
BasicBlockgetParentBlock (Value *v)
 
FunctiongetParentFunction (Value *v)
 
void dumpBlock (Value *v, char *blockName)
 
InstructiongetInst (Value *base, char *instName)
 
void dumpInst (Value *base, char *instName)
 
void dumpInstRec (Value *v, std::set< Instruction * > *visited)
 
void dumpInstRec (Value *v)
 
void dumpParent (Value *v)
 
MCCodeEmittercreatePPCMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI, MCContext &Ctx)
 
MCAsmBackendcreatePPCAsmBackend (const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)
 
MCObjectWritercreatePPCELFObjectWriter (raw_ostream &OS, bool Is64Bit, bool IsLittleEndian, uint8_t OSABI)
 createPPCELFObjectWriter - Construct an PPC ELF object writer. More...
 
MCObjectWritercreatePPCMachObjectWriter (raw_ostream &OS, bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype)
 createPPCELFObjectWriter - Construct a PPC Mach-O object writer. More...
 
FunctionPasscreatePPCCTRLoops (PPCTargetMachine &TM)
 
FunctionPasscreatePPCCTRLoopsVerify ()
 
FunctionPasscreatePPCEarlyReturnPass ()
 
FunctionPasscreatePPCVSXCopyPass ()
 
FunctionPasscreatePPCVSXCopyCleanupPass ()
 
FunctionPasscreatePPCVSXFMAMutatePass ()
 
FunctionPasscreatePPCBranchSelectionPass ()
 
FunctionPasscreatePPCISelDag (PPCTargetMachine &TM)
 
void LowerPPCMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, AsmPrinter &AP, bool isDarwin)
 
ImmutablePasscreatePPCTargetTransformInfoPass (const PPCTargetMachine *TM)
 Creates an PPC-specific Target Transformation Info pass. More...
 
void initializePPCVSXFMAMutatePass (PassRegistry &)
 
void initializePPCBSelPass (PassRegistry &)
 
bool CC_PPC_AnyReg_Error (unsigned &, MVT &, MVT &, CCValAssign::LocInfo &, ISD::ArgFlagsTy &, CCState &)
 
void initializePPCCTRLoopsPass (PassRegistry &)
 
void initializePPCCTRLoopsVerifyPass (PassRegistry &)
 
static const MachineInstrBuilderaddFrameReference (const MachineInstrBuilder &MIB, int FI, int Offset=0, bool mem=true)
 
void initializePPCVSXCopyPass (PassRegistry &)
 
void initializePPCVSXCopyCleanupPass (PassRegistry &)
 
void initializePPCEarlyReturnPass (PassRegistry &)
 
void initializePPCDAGToDAGISelPass (PassRegistry &)
 
bool CC_PPC32_SVR4_Custom_Dummy (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
bool CC_PPC32_SVR4_Custom_AlignArgRegs (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
bool CC_PPC32_SVR4_Custom_AlignFPArgRegs (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
void initializePPCTTIPass (PassRegistry &)
 
FunctionPasscreateR600VectorRegMerger (TargetMachine &tm)
 
FunctionPasscreateR600TextureIntrinsicsReplacer ()
 
FunctionPasscreateR600ExpandSpecialInstrsPass (TargetMachine &tm)
 
FunctionPasscreateR600EmitClauseMarkers ()
 
FunctionPasscreateR600ClauseMergePass (TargetMachine &tm)
 
FunctionPasscreateR600Packetizer (TargetMachine &tm)
 
FunctionPasscreateR600ControlFlowFinalizer (TargetMachine &tm)
 
FunctionPasscreateAMDGPUCFGStructurizerPass ()
 
FunctionPasscreateSITypeRewriter ()
 
FunctionPasscreateSIAnnotateControlFlowPass ()
 Create the annotation pass. More...
 
FunctionPasscreateSIFoldOperandsPass ()
 
FunctionPasscreateSILowerI1CopiesPass ()
 
FunctionPasscreateSIShrinkInstructionsPass ()
 
FunctionPasscreateSILoadStoreOptimizerPass (TargetMachine &tm)
 
FunctionPasscreateSILowerControlFlowPass (TargetMachine &tm)
 
FunctionPasscreateSIFixSGPRCopiesPass (TargetMachine &tm)
 
FunctionPasscreateSIFixSGPRLiveRangesPass ()
 
FunctionPasscreateSICodeEmitterPass (formatted_raw_ostream &OS)
 
FunctionPasscreateSIInsertWaits (TargetMachine &tm)
 
FunctionPasscreateSIPrepareScratchRegs ()
 
void initializeSIFoldOperandsPass (PassRegistry &)
 
void initializeSILowerI1CopiesPass (PassRegistry &)
 
void initializeSILoadStoreOptimizerPass (PassRegistry &)
 
FunctionPasscreateAMDGPUPromoteAlloca (const AMDGPUSubtarget &ST)
 
PasscreateAMDGPUStructurizeCFGPass ()
 
FunctionPasscreateAMDGPUISelDag (TargetMachine &tm)
 This pass converts a legalized DAG into a AMDGPU-specific. More...
 
ModulePasscreateAMDGPUAlwaysInlinePass ()
 
ImmutablePasscreateAMDGPUTargetTransformInfoPass (const AMDGPUTargetMachine *TM)
 Creates an AMDGPU-specific Target Transformation Info pass. More...
 
void initializeSIFixSGPRLiveRangesPass (PassRegistry &)
 
void initializeAMDGPUTTIPass (PassRegistry &)
 
void initializeAMDGPUCFGStructurizerPass (PassRegistry &)
 
MCCodeEmittercreateR600MCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI)
 
MCCodeEmittercreateSIMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI, MCContext &Ctx)
 
MCAsmBackendcreateAMDGPUAsmBackend (const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)
 
MCObjectWritercreateAMDGPUELFObjectWriter (raw_ostream &OS)
 
void initializeR600EmitClauseMarkersPass (PassRegistry &)
 
void initializeSIShrinkInstructionsPass (PassRegistry &)
 
MCCodeEmittercreateSparcMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI, MCContext &Ctx)
 
MCAsmBackendcreateSparcAsmBackend (const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)
 
MCObjectWritercreateSparcELFObjectWriter (raw_ostream &OS, bool Is64Bit, uint8_t OSABI)
 
FunctionPasscreateSparcISelDag (SparcTargetMachine &TM)
 
FunctionPasscreateSparcDelaySlotFillerPass (TargetMachine &TM)
 
void LowerSparcMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, AsmPrinter &AP)
 
static const char * SPARCCondCodeToString (SPCC::CondCodes CC)
 
static unsigned HI22 (int64_t imm)
 
static unsigned LO10 (int64_t imm)
 
static unsigned HIX22 (int64_t imm)
 
static unsigned LOX10 (int64_t imm)
 
MCCodeEmittercreateSystemZMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI, MCContext &Ctx)
 
MCAsmBackendcreateSystemZMCAsmBackend (const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)
 
MCObjectWritercreateSystemZObjectWriter (raw_ostream &OS, uint8_t OSABI)
 
FunctionPasscreateSystemZISelDag (SystemZTargetMachine &TM, CodeGenOpt::Level OptLevel)
 
FunctionPasscreateSystemZElimComparePass (SystemZTargetMachine &TM)
 
FunctionPasscreateSystemZShortenInstPass (SystemZTargetMachine &TM)
 
FunctionPasscreateSystemZLongBranchPass (SystemZTargetMachine &TM)
 
static const MachineInstrBuilderaddFrameReference (const MachineInstrBuilder &MIB, int FI)
 Add a BDX memory reference for frame object FI to MIB. More...
 
X86AsmInstrumentationCreateX86AsmInstrumentation (const MCTargetOptions &MCOptions, const MCContext &Ctx, const MCSubtargetInfo &STI)
 
bool isImmSExti16i8Value (uint64_t Value)
 
bool isImmSExti32i8Value (uint64_t Value)
 
bool isImmSExti64i8Value (uint64_t Value)
 
bool isImmSExti64i32Value (uint64_t Value)
 
bool EmitAnyX86InstComments (const MCInst *MI, raw_ostream &OS, const char *(*getRegName)(unsigned))
 
MCCodeEmittercreateX86MCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI, MCContext &Ctx)
 
MCAsmBackendcreateX86_32AsmBackend (const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)
 
MCAsmBackendcreateX86_64AsmBackend (const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)
 
MCStreamercreateX86WinCOFFStreamer (MCContext &C, MCAsmBackend &AB, MCCodeEmitter *CE, raw_ostream &OS, bool RelaxAll)
 
MCObjectWritercreateX86MachObjectWriter (raw_ostream &OS, bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype)
 createX86MachObjectWriter - Construct an X86 Mach-O object writer. More...
 
MCObjectWritercreateX86ELFObjectWriter (raw_ostream &OS, bool IsELF64, uint8_t OSABI, uint16_t EMachine)
 createX86ELFObjectWriter - Construct an X86 ELF object writer. More...
 
MCObjectWritercreateX86WinCOFFObjectWriter (raw_ostream &OS, bool Is64Bit)
 createX86WinCOFFObjectWriter - Construct an X86 Win COFF object writer. More...
 
MCRelocationInfocreateX86_64MachORelocationInfo (MCContext &Ctx)
 createX86_64MachORelocationInfo - Construct X86-64 Mach-O relocation info. More...
 
MCRelocationInfocreateX86_64ELFRelocationInfo (MCContext &Ctx)
 createX86_64ELFORelocationInfo - Construct X86-64 ELF relocation info. More...
 
void DecodeINSERTPSMask (unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void DecodeMOVHLPSMask (unsigned NElts, SmallVectorImpl< int > &ShuffleMask)
 
void DecodeMOVLHPSMask (unsigned NElts, SmallVectorImpl< int > &ShuffleMask)
 
void DecodeMOVSLDUPMask (MVT VT, SmallVectorImpl< int > &ShuffleMask)
 
void DecodeMOVSHDUPMask (MVT VT, SmallVectorImpl< int > &ShuffleMask)
 
void DecodePSLLDQMask (MVT VT, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void DecodePSRLDQMask (MVT VT, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void DecodePALIGNRMask (MVT VT, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void DecodePSHUFMask (MVT VT, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void DecodePSHUFHWMask (MVT VT, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void DecodePSHUFLWMask (MVT VT, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void DecodeSHUFPMask (MVT VT, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void DecodeUNPCKHMask (MVT VT, SmallVectorImpl< int > &ShuffleMask)
 
void DecodeUNPCKLMask (MVT VT, SmallVectorImpl< int > &ShuffleMask)
 
void DecodeVPERM2X128Mask (MVT VT, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void DecodePSHUFBMask (const Constant *C, SmallVectorImpl< int > &ShuffleMask)
 Decode a PSHUFB mask from an IR-level vector constant. More...
 
void DecodePSHUFBMask (ArrayRef< uint64_t > RawMask, SmallVectorImpl< int > &ShuffleMask)
 Decode a PSHUFB mask from a raw array of constants such as from BUILD_VECTOR. More...
 
void DecodeBLENDMask (MVT VT, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decode a BLEND immediate mask into a shuffle mask. More...
 
void DecodeVPERMMask (unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void DecodeVPERMILPMask (const Constant *C, SmallVectorImpl< int > &ShuffleMask)
 Decode a VPERMILP variable mask from an IR-level vector constant. More...
 
FunctionPasscreateX86ISelDag (X86TargetMachine &TM, CodeGenOpt::Level OptLevel)
 
FunctionPasscreateX86GlobalBaseRegPass ()
 
FunctionPasscreateCleanupLocalDynamicTLSPass ()
 
FunctionPasscreateX86FloatingPointStackifierPass ()
 
FunctionPasscreateX86IssueVZeroUpperPass ()
 
FunctionPasscreateEmitX86CodeToMemory ()
 
ImmutablePasscreateX86TargetTransformInfoPass (const X86TargetMachine *TM)
 Creates an X86-specific Target Transformation Info pass. More...
 
FunctionPasscreateX86PadShortFunctions ()
 
FunctionPasscreateX86FixupLEAs ()
 
bool CC_X86_32_VectorCallIndirect (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
bool CC_X86_AnyReg_Error (unsigned &, MVT &, MVT &, CCValAssign::LocInfo &, ISD::ArgFlagsTy &, CCState &)
 
static const MachineInstrBuilderaddDirectMem (const MachineInstrBuilder &MIB, unsigned Reg)
 
static const MachineInstrBuilderaddOffset (const MachineInstrBuilder &MIB, int Offset)
 
static const MachineInstrBuilderaddRegOffset (const MachineInstrBuilder &MIB, unsigned Reg, bool isKill, int Offset)
 
static const MachineInstrBuilderaddRegReg (const MachineInstrBuilder &MIB, unsigned Reg1, bool isKill1, unsigned Reg2, bool isKill2)
 
static const MachineInstrBuilderaddFullAddress (const MachineInstrBuilder &MIB, const X86AddressMode &AM)
 
static const MachineInstrBuilderaddFrameReference (const MachineInstrBuilder &MIB, int FI, int Offset=0)
 
static const MachineInstrBuilderaddConstantPoolReference (const MachineInstrBuilder &MIB, unsigned CPI, unsigned GlobalBaseReg, unsigned char OpFlags)
 
static bool isGlobalStubReference (unsigned char TargetFlag)
 
static bool isGlobalRelativeToPICBase (unsigned char TargetFlag)
 
static bool isScale (const MachineOperand &MO)
 
static bool isLeaMem (const MachineInstr *MI, unsigned Op)
 
static bool isMem (const MachineInstr *MI, unsigned Op)
 
static const IntrinsicDatagetIntrinsicWithChain (unsigned IntNo)
 
static const IntrinsicDatagetIntrinsicWithoutChain (unsigned IntNo)
 
static void verifyIntrinsicTables ()
 
unsigned getX86SubSuperRegister (unsigned Reg, MVT::SimpleValueType VT, bool High)
 
unsigned get512BitSuperRegister (unsigned Reg)
 
void initializeX86TTIPass (PassRegistry &)
 
void initializeXCoreLowerThreadLocalPass (PassRegistry &p)
 
FunctionPasscreateXCoreFrameToArgsOffsetEliminationPass ()
 
FunctionPasscreateXCoreISelDag (XCoreTargetMachine &TM, CodeGenOpt::Level OptLevel)
 
ModulePasscreateXCoreLowerThreadLocalPass ()
 
ImmutablePasscreateXCoreTargetTransformInfoPass (const XCoreTargetMachine *TM)
 
void initializeXCoreTTIPass (PassRegistry &)
 
static unsigned getComplexity (Value *V)
 
static ConstantAddOne (Constant *C)
 AddOne - Add one to a Constant. More...
 
static ConstantSubOne (Constant *C)
 SubOne - Subtract one from a Constant. More...
 
static bool CompareVars (const ASanStackVariableDescription &a, const ASanStackVariableDescription &b)
 
static size_t RoundUpTo (size_t X, size_t RoundTo)
 
static size_t VarAndRedzoneSize (size_t Size, size_t Alignment)
 
ArrayRef Convenience constructors
template<typename T >
ArrayRef< TmakeArrayRef (const T &OneElt)
 Construct an ArrayRef from a single element. More...
 
template<typename T >
ArrayRef< TmakeArrayRef (const T *data, size_t length)
 Construct an ArrayRef from a pointer and length. More...
 
template<typename T >
ArrayRef< TmakeArrayRef (const T *begin, const T *end)
 Construct an ArrayRef from a range. More...
 
template<typename T >
ArrayRef< TmakeArrayRef (const SmallVectorImpl< T > &Vec)
 Construct an ArrayRef from a SmallVector. More...
 
template<typename T , unsigned N>
ArrayRef< TmakeArrayRef (const SmallVector< T, N > &Vec)
 Construct an ArrayRef from a SmallVector. More...
 
template<typename T >
ArrayRef< TmakeArrayRef (const std::vector< T > &Vec)
 Construct an ArrayRef from a std::vector. More...
 
template<typename T , size_t N>
ArrayRef< TmakeArrayRef (const T(&Arr)[N])
 Construct an ArrayRef from a C array. More...
 
ArrayRef Comparison Operators
template<typename T >
bool operator== (ArrayRef< T > LHS, ArrayRef< T > RHS)
 
template<typename T >
bool operator!= (ArrayRef< T > LHS, ArrayRef< T > RHS)
 
StringRef Comparison Operators
bool operator== (StringRef LHS, StringRef RHS)
 
bool operator!= (StringRef LHS, StringRef RHS)
 
bool operator< (StringRef LHS, StringRef RHS)
 
bool operator<= (StringRef LHS, StringRef RHS)
 
bool operator> (StringRef LHS, StringRef RHS)
 
bool operator>= (StringRef LHS, StringRef RHS)
 
std::string & operator+= (std::string &buffer, StringRef string)
 
Twine Inline Implementations
Twine operator+ (const Twine &LHS, const Twine &RHS)
 
Twine operator+ (const char *LHS, const StringRef &RHS)
 
Twine operator+ (const StringRef &LHS, const char *RHS)
 
raw_ostreamoperator<< (raw_ostream &OS, const Twine &RHS)
 

Variables

const unsigned int host_char_bit = 8
 
const unsigned int integerPartWidth
 
template<typename T >
int(*)(const void *, const void *) get_array_pod_sort_comparator (const T &)
 
cl::opt< boolForceTopDown
 
cl::opt< boolForceBottomUp
 
char & AtomicExpandID = AtomicExpand::ID
 
char & MachineLoopInfoID = MachineLoopInfo::ID
 MachineLoopInfo - This pass is a loop analysis pass. More...
 
char & MachineDominatorsID
 MachineDominators - This pass is a machine dominators analysis pass. More...
 
char & MachineDominanceFrontierID = MachineDominanceFrontier::ID
 MachineDominanaceFrontier - This pass is a machine dominators analysis pass. More...
 
char & EdgeBundlesID
 EdgeBundles analysis - Bundle machine CFG edges. More...
 
char & LiveVariablesID = LiveVariables::ID
 
char & PHIEliminationID = PHIElimination::ID
 
char & LiveIntervalsID = LiveIntervals::ID
 
char & LiveStacksID = LiveStacks::ID
 LiveStacks pass. An analysis keeping track of the liveness of stack slots. More...
 
char & TwoAddressInstructionPassID = TwoAddressInstructionPass::ID
 
char & ProcessImplicitDefsID = ProcessImplicitDefs::ID
 ProcessImpicitDefs pass - This pass removes IMPLICIT_DEFs. More...
 
char & RegisterCoalescerID = RegisterCoalescer::ID
 RegisterCoalescer - This pass merges live ranges to eliminate copies. More...
 
char & MachineSchedulerID = MachineScheduler::ID
 MachineScheduler - This pass schedules machine instructions. More...
 
char & PostMachineSchedulerID = PostMachineScheduler::ID
 PostMachineScheduler - This pass schedules machine instructions postRA. More...
 
char & SpillPlacementID = SpillPlacement::ID
 
char & VirtRegRewriterID = VirtRegRewriter::ID
 
char & UnreachableMachineBlockElimID
 
char & DeadMachineInstructionElimID = DeadMachineInstructionElim::ID
 DeadMachineInstructionElim - This pass removes dead machine instructions. More...
 
char & PrologEpilogCodeInserterID = PEI::ID
 
char & ExpandPostRAPseudosID = ExpandPostRA::ID
 
char & PostRASchedulerID = PostRAScheduler::ID
 
char & BranchFolderPassID = BranchFolderPass::ID
 
char & MachineFunctionPrinterPassID = MachineFunctionPrinterPass::ID
 MachineFunctionPrinterPass - This pass prints out MachineInstr's. More...
 
char & TailDuplicateID = TailDuplicatePass::ID
 
char & MachineTraceMetricsID = MachineTraceMetrics::ID
 
char & EarlyIfConverterID = EarlyIfConverter::ID
 
char & MachineCombinerID = MachineCombiner::ID
 
char & StackColoringID = StackColoring::ID
 
char & IfConverterID = IfConverter::ID
 IfConverter - This pass performs machine code if conversion. More...
 
char & MachineBlockPlacementID = MachineBlockPlacement::ID
 
char & MachineBlockPlacementStatsID = MachineBlockPlacementStats::ID
 
char & GCMachineCodeAnalysisID = GCMachineCodeAnalysis::ID
 
char & MachineCSEID = MachineCSE::ID
 MachineCSE - This pass performs global CSE on machine instructions. More...
 
char & MachineLICMID = MachineLICM::ID
 MachineLICM - This pass performs LICM on machine instructions. More...
 
char & MachineSinkingID = MachineSinking::ID
 MachineSinking - This pass performs sinking on machine instructions. More...
 
char & MachineCopyPropagationID = MachineCopyPropagation::ID
 
char & PeepholeOptimizerID = PeepholeOptimizer::ID
 
char & OptimizePHIsID = OptimizePHIs::ID
 
char & StackSlotColoringID = StackSlotColoring::ID
 StackSlotColoring - This pass performs stack slot coloring. More...
 
char & LocalStackSlotAllocationID = LocalStackSlotPass::ID
 
char & ExpandISelPseudosID = ExpandISelPseudos::ID
 ExpandISelPseudos - This pass expands pseudo-instructions. More...
 
char & UnpackMachineBundlesID = UnpackMachineBundles::ID
 UnpackMachineBundles - This pass unpack machine instruction bundles. More...
 
char & FinalizeMachineBundlesID = FinalizeMachineBundles::ID
 
char & StackMapLivenessID = StackMapLiveness::ID
 
const char AsmRewritePrecedence []
 
bool TimePassesIsEnabled = false
 This is the storage for the -time-passes option. More...
 
bool DebugFlag
 
bool EnableDebugBuffering = false
 
static const unsigned char BitReverseTable256 [256]
 Macro compressed bit reversal table for 256 bits. More...
 
const float huge_valf = HUGE_VALF
 
SourceMgr SrcMgr
 
unsigned ErrorsPrinted = 0
 
char & DemoteRegisterToMemoryID = RegToMem::ID
 
char & BreakCriticalEdgesID
 
char & LoopSimplifyID = LoopSimplify::ID
 
char & LowerSwitchID
 
char & LowerInvokePassID
 
char & LCSSAID = LCSSA::ID
 
char & InstructionNamerID
 
char & InstructionSimplifierID = InstSimplifier::ID
 
static const int kAsanStackLeftRedzoneMagic = 0xf1
 
static const int kAsanStackMidRedzoneMagic = 0xf2
 
static const int kAsanStackRightRedzoneMagic = 0xf3
 
static const unsigned NumStratifiedAttrs = 32
 
cl::opt< boolDumpCriticalPathLength ("misched-dcpl", cl::Hidden, cl::desc("Print critical path length to stdout"))
 
cl::opt< boolEnablePatchPointLiveness ("enable-patchpoint-liveness", cl::Hidden, cl::init(true), cl::desc("Enable PatchPoint Liveness Analysis Pass"))
 
const unsigned int maxExponent = 16383
 
const unsigned int maxPrecision = 113
 
const unsigned int maxPowerOfFiveExponent = maxExponent + maxPrecision - 1
 
const unsigned int maxPowerOfFiveParts
 
Target TheAArch64leTarget
 
Target TheAArch64beTarget
 
Target TheARM64Target
 
static const uint16_t SRegList []
 
static const uint16_t DRegList []
 
static const uint16_t QRegList [] = { ARM::Q0, ARM::Q1, ARM::Q2, ARM::Q3 }
 
const MCInstrDesc ARMInsts []
 
Target TheARMLETarget
 
Target TheThumbLETarget
 
Target TheARMBETarget
 
Target TheThumbBETarget
 
cl::opt< boolReuseFrameIndexVals
 
Target TheCppBackendTarget
 
bool flag_aligned_memcpy
 
Target TheHexagonTarget
 
const MCInstrDesc MipsInsts []
 
Target TheMipselTarget
 
Target TheMipsTarget
 
Target TheMips64Target
 
Target TheMips64elTarget
 
static const unsigned MIPS_NACL_BUNDLE_ALIGN = 4u
 
Target TheMSP430Target
 
const unsigned AnnotationNameLen = 9
 
const char PropertyAnnotationNames [PROPERTY_LAST+1][AnnotationNameLen+1]
 
static const char * NamedMDForAnnotations = "nvvm.annotations"
 
Target TheNVPTXTarget32
 
Target TheNVPTXTarget64
 
static RegisterPass
< NVPTXAllocaHoisting
X ("alloca-hoisting","Hoisting alloca instructions in non-entry ""blocks to the entry block")
 
Target ThePPC32Target
 
Target ThePPC64Target
 
Target ThePPC64LETarget
 
char & PPCVSXFMAMutateID = PPCVSXFMAMutate::ID
 
char & SIFoldOperandsID = SIFoldOperands::ID
 
char & SILowerI1CopiesID = SILowerI1Copies::ID
 
char & SILoadStoreOptimizerID = SILoadStoreOptimizer::ID
 
char & SIFixSGPRLiveRangesID = SIFixSGPRLiveRanges::ID
 
Target TheAMDGPUTarget
 The target which suports all AMD GPUs. This will eventually be deprecated and there will be a R600 target and a GCN target. More...
 
Target TheGCNTarget
 The target for GCN GPUs. More...
 
Target TheSparcTarget
 
Target TheSparcV9Target
 
Target TheSystemZTarget
 
Target TheX86_32Target
 
Target TheX86_64Target
 
static const IntrinsicData IntrinsicsWithChain []
 
static const IntrinsicData IntrinsicsWithoutChain []
 
Target TheXCoreTarget
 
static const unsigned CodeModelLargeSize = 256
 
static const size_t kMinAlignment = 16
 

Detailed Description

List of target independent CodeGen pass IDs.

Specialize WriteGraph, the standard implementation won't work.

SSAUpdaterTraits<MachineSSAUpdater> - Traits for the SSAUpdaterImpl template, specialized for MachineSSAUpdater.

Typedef Documentation

typedef const void* llvm::AnalysisID

Definition at line 47 of file Pass.h.

The standard BumpPtrAllocator which just uses the default template paramaters.

Definition at line 354 of file Allocator.h.

typedef bool llvm::CCAssignFn(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State)

CCAssignFn - This function assigns a location for Val, updating State to reflect the change. It returns 'true' if it failed to handle Val.

Definition at line 173 of file CallingConvLower.h.

typedef bool llvm::CCCustomFn(unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)

CCCustomFn - This function assigns a location for Val, possibly updating all args to reflect changes and indicates if it handled it. It must set isCustom if it handles the arg and returns true.

Definition at line 180 of file CallingConvLower.h.

The CGSCC analysis manager.

See the documentation for the AnalysisManager template for detail documentation. This typedef serves as a convenient way to refer to this construct in the adaptors and proxies used to integrate this into the larger pass manager infrastructure.

Definition at line 42 of file CGSCCPassManager.h.

The CGSCC pass manager.

See the documentation for the PassManager template for details. It runs a sequency of SCC passes over each SCC that the manager is run over. This typedef serves as a convenient way to refer to this construct.

Definition at line 34 of file CGSCCPassManager.h.

Definition at line 126 of file InstIterator.h.

Definition at line 86 of file IR/CFG.h.

Definition at line 101 of file DiagnosticInfo.h.

Definition at line 267 of file DebugInfo.h.

typedef SmallVector<std::pair<uint64_t, DILineInfo>, 16> llvm::DILineInfoTable

Definition at line 49 of file DIContext.h.

Definition at line 285 of file DebugInfo.h.

Definition at line 288 of file DebugInfo.h.

Maps from type identifier to the actual MDNode.

Definition at line 56 of file DebugInfo.h.

Definition at line 287 of file DebugInfo.h.

typedef DenseMap<DivOpInfo, DivPhiNodes> llvm::DivCacheTy

Definition at line 71 of file BypassSlowDivision.cpp.

Definition at line 52 of file Dominators.h.

typedef std::vector<std::pair<uint64_t, uint64_t> > llvm::DWARFAddressRangesVector

DWARFAddressRangesVector - represents a set of absolute address ranges.

Definition at line 18 of file DWARFDebugRangeList.h.

typedef void(* llvm::fatal_error_handler_t)(void *user_data, const std::string &reason, bool gen_crash_diag)

An error handler callback.

Definition at line 26 of file ErrorHandling.h.

Definition at line 351 of file FoldingSet.h.

Definition at line 235 of file IntervalIterator.h.

Convenience typedef for the Function analysis manager.

Definition at line 583 of file IR/PassManager.h.

Convenience typedef for a pass manager over functions.

Definition at line 257 of file IR/PassManager.h.

GCMetadataPrinterRegistry - The GC assembly printer registry uses all the defaults from Registry.

Definition at line 29 of file GCMetadataPrinter.h.

Subclasses of GCStrategy are made available for use during compilation by adding them to the global GCRegistry. This can done either within the LLVM source tree or via a loadable plugin. An example registeration would be: static GCRegistry::Add<CustomGC> X("custom-name", "my custom supper fancy gc strategy");

Note that to use a custom GCMetadataPrinter w/gc.roots, you must also register your GCMetadataPrinter subclass with the GCMetadataPrinterRegistery as well.

Definition at line 193 of file GCStrategy.h.

Definition at line 83 of file GetElementPtrTypeIterator.h.

typedef bool llvm::Hexagon_CCAssignFn(unsigned ValNo, EVT ValVT, EVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Hexagon_CCState &State, int NonVarArgsParams, int CurrentParam, bool ForceMem)

Hexagon_CCAssignFn - This function assigns a location for Val, updating State to reflect the change.

Definition at line 35 of file HexagonCallingConvLower.h.

Definition at line 315 of file SlotIndexes.h.

InsnRange - This is used to track range of instructions with identical lexical scope.

Definition at line 34 of file LexicalScopes.h.

Definition at line 122 of file InstIterator.h.

Definition at line 258 of file InstrProfReader.h.

typedef uint64_t llvm::integerPart

Definition at line 35 of file APInt.h.

Definition at line 237 of file IntervalIterator.h.

LargestSDNode - The largest SDNode class.

Definition at line 2114 of file SelectionDAGNodes.h.

Definition at line 29 of file LiveIntervalUnion.h.

Definition at line 731 of file ScalarEvolutionExpressions.h.

Definition at line 35 of file MachineDominators.h.

typedef void*(* llvm::MachinePassCtor)()

Definition at line 26 of file MachinePassRegistry.h.

Definition at line 200 of file MCLinkerOptimizationHint.h.

Definition at line 201 of file MCLinkerOptimizationHint.h.

typedef uint16_t llvm::MCPhysReg

An unsigned integer type large enough to represent all physical registers, but not necessarily virtual registers.

Definition at line 27 of file MCRegisterInfo.h.

Definition at line 43 of file MCStreamer.h.

Convenience typedef for the Module analysis manager.

Definition at line 580 of file IR/PassManager.h.

Convenience typedef for a pass manager over modules.

Definition at line 254 of file IR/PassManager.h.

MostAlignedSDNode - The SDNode class with the greatest alignment requirement.

Definition at line 2119 of file SelectionDAGNodes.h.

Definition at line 25 of file MCTargetAsmParser.h.

Definition at line 33 of file PBQPRAConstraint.h.

typedef void* llvm::PointerTy

Definition at line 23 of file GenericValue.h.

PostIncLoopSet - A set of loops.

Definition at line 64 of file ScalarEvolutionNormalization.h.

Definition at line 84 of file IR/CFG.h.

Definition at line 198 of file InstrProfReader.h.

Definition at line 199 of file InstrProfReader.h.

Use a SparseMultiSet to track physical registers. Storage is only allocated once for the pass. It can be cleared in constant time and reused without any frees.

Definition at line 61 of file ScheduleDAGInstrs.h.

typedef DenseMap< uint64_t, std::pair< uint8_t, int64_t > > llvm::RelocAddrMap

Definition at line 121 of file DIContext.h.

Definition at line 29 of file MCExpr.h.

typedef std::pair<Value*, Value*> llvm::SizeOffsetEvalType

Definition at line 212 of file MemoryBuiltins.h.

typedef std::pair<APInt, APInt> llvm::SizeOffsetType

Definition at line 155 of file MemoryBuiltins.h.

Definition at line 48 of file StratifiedSets.h.

Definition at line 29 of file StratifiedSets.h.

Definition at line 249 of file IR/CFG.h.

Definition at line 247 of file IR/CFG.h.

typedef bool llvm::TableGenMainFn(raw_ostream &OS, RecordKeeper &Records)

Perform the action using Records, and write output to OS.

Returns
true on error, false otherwise

Definition at line 23 of file Main.h.

Definition at line 138 of file TrackingMDRef.h.

Definition at line 139 of file TrackingMDRef.h.

typedef std::vector<UseListOrder> llvm::UseListOrderStack

Definition at line 52 of file UseListOrder.h.

Definition at line 48 of file Value.h.

typedef std::vector<GenericValue> llvm::ValuePlaneTy

Definition at line 634 of file ScalarEvolutionExpressions.h.

Definition at line 22 of file ValueMapper.h.

Use SparseSet as a SparseMap by relying on the fact that it never compares ValueT's, only unsigned keys. This allows the set to be cleared between scheduling regions in constant time as long as ValueT does not require a destructor.

Definition at line 67 of file ScheduleDAGInstrs.h.

Track local uses of virtual registers. These uses are gathered by the DAG builder and may be consulted by the scheduler to avoid iterating an entire vreg use list.

Definition at line 72 of file ScheduleDAGInstrs.h.

Enumeration Type Documentation

anonymous enum
Enumerator
SM_SentinelUndef 
SM_SentinelZero 

Definition at line 29 of file X86ShuffleDecode.h.

anonymous enum
Enumerator
ELF_STT_Shift 
ELF_STB_Shift 
ELF_STV_Shift 
ELF_STO_Shift 

Definition at line 23 of file MCELFSymbolFlags.h.

Use to report the frame offset status in isAArch64FrameOffsetLegal.

Enumerator
AArch64FrameOffsetCannotUpdate 

Offset cannot apply.

AArch64FrameOffsetIsLegal 

Offset is legal.

AArch64FrameOffsetCanUpdate 

Offset can apply, at least partly.

Definition at line 213 of file AArch64InstrInfo.h.

Enumerator
ADDRESS_SPACE_GENERIC 
ADDRESS_SPACE_GLOBAL 
ADDRESS_SPACE_SHARED 
ADDRESS_SPACE_CONST 
ADDRESS_SPACE_LOCAL 
ADDRESS_SPACE_PARAM 

Definition at line 22 of file NVPTXBaseInfo.h.

Enum used to categorize the alignment types stored by LayoutAlignElem.

Enumerator
INVALID_ALIGN 
INTEGER_ALIGN 
VECTOR_ALIGN 
FLOAT_ALIGN 
AGGREGATE_ALIGN 

Definition at line 48 of file DataLayout.h.

Enumerator
AOK_Delete 
AOK_Align 
AOK_DotOperator 
AOK_Emit 
AOK_Imm 
AOK_ImmPrefix 
AOK_Input 
AOK_Output 
AOK_SizeDirective 
AOK_Label 
AOK_Skip 

Definition at line 29 of file MCTargetAsmParser.h.

Enumerator
NotAtomic 
Unordered 
Monotonic 
Acquire 
Release 
AcquireRelease 
SequentiallyConsistent 

Definition at line 37 of file Instructions.h.

enum llvm::BitcodeError
strong
Enumerator
InvalidBitcodeSignature 
CorruptedBitcode 

Definition at line 146 of file ReaderWriter.h.

enum llvm::CFIntegrity
strong
Enumerator
Sub 
Ror 
Add 

Definition at line 60 of file TargetOptions.h.

Enumerator
BeforeLegalizeTypes 
AfterLegalizeTypes 
AfterLegalizeVectorOps 
AfterLegalizeDAG 

Definition at line 16 of file DAGCombine.h.

Defines the different supported kind of a diagnostic. This enum should be extended with a new ID for each added concrete subclass.

Enumerator
DK_Bitcode 
DK_InlineAsm 
DK_StackSize 
DK_Linker 
DK_DebugMetadataVersion 
DK_SampleProfile 
DK_OptimizationRemark 
DK_OptimizationRemarkMissed 
DK_OptimizationRemarkAnalysis 
DK_OptimizationFailure 
DK_FirstPluginKind 

Definition at line 47 of file DiagnosticInfo.h.

Defines the different supported severity of a diagnostic.

Enumerator
DS_Error 
DS_Warning 
DS_Remark 
DS_Note 

Definition at line 36 of file DiagnosticInfo.h.

Selects which debug sections get dumped.

Enumerator
DIDT_Null 
DIDT_All 
DIDT_Abbrev 
DIDT_AbbrevDwo 
DIDT_Aranges 
DIDT_Frames 
DIDT_Info 
DIDT_InfoDwo 
DIDT_Types 
DIDT_TypesDwo 
DIDT_Line 
DIDT_LineDwo 
DIDT_Loc 
DIDT_LocDwo 
DIDT_Ranges 
DIDT_Pubnames 
DIDT_Pubtypes 
DIDT_GnuPubnames 
DIDT_GnuPubtypes 
DIDT_Str 
DIDT_StrDwo 
DIDT_StrOffsetsDwo 
DIDT_AppleNames 
DIDT_AppleTypes 
DIDT_AppleNamespaces 
DIDT_AppleObjC 

Definition at line 87 of file DIContext.h.

enum llvm::DINameKind
strong

A DINameKind is passed to name search methods to specify a preference regarding the type of name resolution the caller wants.

Enumerator
None 
ShortName 
LinkageName 

Definition at line 70 of file DIContext.h.

Enumerator
ELF_STB_Local 
ELF_STB_Global 
ELF_STB_Weak 
ELF_STB_Loproc 
ELF_STB_Hiproc 
ELF_STT_Notype 
ELF_STT_Object 
ELF_STT_Func 
ELF_STT_Section 
ELF_STT_File 
ELF_STT_Common 
ELF_STT_Tls 
ELF_STT_GnuIFunc 
ELF_STT_Loproc 
ELF_STT_Hiproc 
ELF_STV_Default 
ELF_STV_Internal 
ELF_STV_Hidden 
ELF_STV_Protected 

Definition at line 30 of file MCELFSymbolFlags.h.

enum llvm::errc
strong
Enumerator
argument_list_too_long 
argument_out_of_domain 
bad_address 
bad_file_descriptor 
broken_pipe 
device_or_resource_busy 
directory_not_empty 
executable_format_error 
file_exists 
file_too_large 
filename_too_long 
function_not_supported 
illegal_byte_sequence 
inappropriate_io_control_operation 
interrupted 
invalid_argument 
invalid_seek 
io_error 
is_a_directory 
no_child_process 
no_lock_available 
no_space_on_device 
no_such_device_or_address 
no_such_device 
no_such_file_or_directory 
no_such_process 
not_a_directory 
not_enough_memory 
operation_not_permitted 
permission_denied 
read_only_file_system 
resource_deadlock_would_occur 
resource_unavailable_try_again 
result_out_of_range 
too_many_files_open_in_system 
too_many_files_open 
too_many_links 

Definition at line 36 of file Errc.h.

Enumerator
None 
DwarfCFI 

No exception support.

SjLj 

DWARF-like instruction based exceptions.

ARM 

setjmp/longjmp based exceptions

ItaniumWinEH 

ARM EHABI.

MSVC 

Itanium EH built on Windows unwind info (.pdata and .xdata)

Definition at line 44 of file MCAsmInfo.h.

enum llvm::instrprof_error
strong
Enumerator
success 
eof 
bad_magic 
bad_header 
unsupported_version 
unsupported_hash_type 
too_large 
truncated 
malformed 
unknown_function 
hash_mismatch 
count_mismatch 
counter_overflow 

Definition at line 24 of file InstrProf.h.

Enumerator
INTR_NO_TYPE 
GATHER 
SCATTER 
PREFETCH 
RDSEED 
RDRAND 
RDPMC 
RDTSC 
XTEST 
ADX 
INTR_TYPE_1OP 
INTR_TYPE_2OP 
INTR_TYPE_3OP 
CMP_MASK 
CMP_MASK_CC 
VSHIFT 
VSHIFT_MASK 
COMI 
INTR_TYPE_1OP_MASK_RM 
INTR_TYPE_2OP_MASK 
FMA_OP_MASK 
INTR_TYPE_SCALAR_MASK_RM 
COMPRESS_EXPAND_IN_REG 
COMPRESS_TO_MEM 
EXPAND_FROM_MEM 
BLEND 

Definition at line 19 of file X86IntrinsicsInfo.h.

enum llvm::LLVMConstants : uint32_t
Enumerator
DEBUG_METADATA_VERSION 

Definition at line 36 of file Metadata.h.

Enum that represents what fraction of the LSB truncated bits of an fp number represent.

This essentially combines the roles of guard and sticky bits.

Enumerator
lfExactlyZero 
lfLessThanHalf 
lfExactlyHalf 
lfMoreThanHalf 

Definition at line 32 of file APFloat.h.

MachOSymbolFlags - We store the value for the 'desc' symbol field in the lowest 16 bits of the implementation defined flags.

Enumerator
SF_DescFlagsMask 
SF_ReferenceTypeMask 
SF_ReferenceTypeUndefinedNonLazy 
SF_ReferenceTypeUndefinedLazy 
SF_ReferenceTypeDefined 
SF_ReferenceTypePrivateDefined 
SF_ReferenceTypePrivateUndefinedNonLazy 
SF_ReferenceTypePrivateUndefinedLazy 
SF_ThumbFunc 
SF_NoDeadStrip 
SF_WeakReference 
SF_WeakDefinition 
SF_SymbolResolver 

Definition at line 24 of file MCMachOSymbolFlags.h.

Enumerator
MCAF_SyntaxUnified 

.syntax (ARM/ELF)

MCAF_SubsectionsViaSymbols 

.subsections_via_symbols (MachO)

MCAF_Code16 

.code16 (X86) / .code 16 (ARM)

MCAF_Code32 

.code32 (X86) / .code 32 (ARM)

MCAF_Code64 

.code64 (X86)

Definition at line 47 of file MCDirectives.h.

Enumerator
MCDR_DataRegion 

.data_region

MCDR_DataRegionJT8 

.data_region jt8

MCDR_DataRegionJT16 

.data_region jt16

MCDR_DataRegionJT32 

.data_region jt32

MCDR_DataRegionEnd 

.end_data_region

Definition at line 55 of file MCDirectives.h.

MCFixupKind - Extensible enumeration to represent the type of a fixup.

Enumerator
FK_Data_1 

A one-byte fixup.

FK_Data_2 

A two-byte fixup.

FK_Data_4 

A four-byte fixup.

FK_Data_8 

A eight-byte fixup.

FK_PCRel_1 

A one-byte pc relative fixup.

FK_PCRel_2 

A two-byte pc relative fixup.

FK_PCRel_4 

A four-byte pc relative fixup.

FK_PCRel_8 

A eight-byte pc relative fixup.

FK_GPRel_1 

A one-byte gp relative fixup.

FK_GPRel_2 

A two-byte gp relative fixup.

FK_GPRel_4 

A four-byte gp relative fixup.

FK_GPRel_8 

A eight-byte gp relative fixup.

FK_SecRel_1 

A one-byte section relative fixup.

FK_SecRel_2 

A two-byte section relative fixup.

FK_SecRel_4 

A four-byte section relative fixup.

FK_SecRel_8 

A eight-byte section relative fixup.

FirstTargetFixupKind 
MaxTargetFixupKind 

Definition at line 23 of file MCFixup.h.

Linker Optimization Hint Type.

Enumerator
MCLOH_AdrpAdrp 

Adrp xY, _v1 -> Adrp xY, _v2.

MCLOH_AdrpLdr 

Adrp _v -> Ldr _v.

MCLOH_AdrpAddLdr 

Adrp _v -> Add _v -> Ldr.

MCLOH_AdrpLdrGotLdr 

Adrp _v -> Ldr _v -> Ldr.

MCLOH_AdrpAddStr 

Adrp _v -> Add _v -> Str.

MCLOH_AdrpLdrGotStr 

Adrp _v -> Ldr _v -> Str.

MCLOH_AdrpAdd 

Adrp _v -> Add _v.

MCLOH_AdrpLdrGot 

Adrp _v -> Ldr _v.

Definition at line 33 of file MCLinkerOptimizationHint.h.

Enumerator
MCSA_Invalid 

Not a valid directive.

MCSA_ELF_TypeFunction 

.type _foo, STT_FUNC # aka

MCSA_ELF_TypeIndFunction 

.type _foo, STT_GNU_IFUNC

MCSA_ELF_TypeObject 

.type _foo, STT_OBJECT # aka

MCSA_ELF_TypeTLS 

.type _foo, STT_TLS # aka

MCSA_ELF_TypeCommon 

.type _foo, STT_COMMON # aka

MCSA_ELF_TypeNoType 

.type _foo, STT_NOTYPE # aka

MCSA_ELF_TypeGnuUniqueObject 
MCSA_Global 

.type _foo,

.globl

MCSA_Hidden 

.hidden (ELF)

MCSA_IndirectSymbol 

.indirect_symbol (MachO)

MCSA_Internal 

.internal (ELF)

MCSA_LazyReference 

.lazy_reference (MachO)

MCSA_Local 

.local (ELF)

MCSA_NoDeadStrip 

.no_dead_strip (MachO)

MCSA_SymbolResolver 

.symbol_resolver (MachO)

MCSA_PrivateExtern 

.private_extern (MachO)

MCSA_Protected 

.protected (ELF)

MCSA_Reference 

.reference (MachO)

MCSA_Weak 

.weak

MCSA_WeakDefinition 

.weak_definition (MachO)

MCSA_WeakReference 

.weak_reference (MachO)

MCSA_WeakDefAutoPrivate 

.weak_def_can_be_hidden (MachO)

Definition at line 19 of file MCDirectives.h.

Enumerator
MCVM_IOSVersionMin 

.ios_version_min

MCVM_OSXVersionMin 

.macosx_version_min

Definition at line 63 of file MCDirectives.h.

Enumerator
VMOVModImm 
VMVNModImm 
OtherModImm 

Definition at line 611 of file ARMISelLowering.h.

A simple null object to allow implicit construction of Optional<T> and similar types without having to spell out the specialization's name.

Enumerator
None 

Definition at line 22 of file None.h.

enum llvm::OverflowResult
strong
Enumerator
AlwaysOverflows 
MayOverflow 
NeverOverflows 

Definition at line 218 of file ValueTracking.h.

ParmContext - This enum tracks whether calling convention lowering is in the context of prologue or call generation. Not all backends make use of this information.

Enumerator
Unknown 
Prologue 
Call 

Definition at line 187 of file CallingConvLower.h.

Enumerator
EXECUTION_MSG 
MODIFICATION_MSG 
FREEING_MSG 
ON_BASICBLOCK_MSG 
ON_FUNCTION_MSG 
ON_MODULE_MSG 
ON_REGION_MSG 
ON_LOOP_MSG 
ON_CG_MSG 

Definition at line 103 of file LegacyPassManagers.h.

Enumerator
PT_BasicBlock 
PT_Region 
PT_Loop 
PT_Function 
PT_CallGraphSCC 
PT_Module 
PT_PassManager 

Definition at line 67 of file Pass.h.

Different types of internal pass managers. External pass managers (PassManager and FunctionPassManager) are not represented here. Ordering of pass manager types is important here.

Enumerator
PMT_Unknown 
PMT_ModulePassManager 

MPPassManager.

PMT_CallGraphPassManager 

CGPassManager.

PMT_FunctionPassManager 

FPPassManager.

PMT_LoopPassManager 

LPPassManager.

PMT_RegionPassManager 

RGPassManager.

PMT_BasicBlockPassManager 

BBPassManager.

PMT_Last 

Definition at line 55 of file Pass.h.

Enumerator
PROPERTY_MAXNTID_X 
PROPERTY_MAXNTID_Y 
PROPERTY_MAXNTID_Z 
PROPERTY_REQNTID_X 
PROPERTY_REQNTID_Y 
PROPERTY_REQNTID_Z 
PROPERTY_MINNCTAPERSM 
PROPERTY_ISTEXTURE 
PROPERTY_ISSURFACE 
PROPERTY_ISSAMPLER 
PROPERTY_ISREADONLY_IMAGE_PARAM 
PROPERTY_ISWRITEONLY_IMAGE_PARAM 
PROPERTY_ISREADWRITE_IMAGE_PARAM 
PROPERTY_ISKERNEL_FUNCTION 
PROPERTY_ALIGN 
PROPERTY_MANAGED 
PROPERTY_LAST 

Definition at line 33 of file NVPTXBaseInfo.h.

RemapFlags - These are flags that the value mapping APIs allow.

Enumerator
RF_None 
RF_NoModuleLevelChanges 

RF_NoModuleLevelChanges - If this flag is set, the remapper knows that only local values within a function (such as an instruction or argument) are mapped, not global values like functions and global metadata.

RF_IgnoreMissingEntries 

RF_IgnoreMissingEntries - If this flag is set, the remapper ignores entries that are not in the value map. If it is unset, it aborts if an operand is asked to be remapped which doesn't exist in the mapping.

Definition at line 51 of file ValueMapper.h.

Enumerator
success 
bad_magic 
unsupported_version 
too_large 
truncated 
malformed 
unrecognized_format 

Definition at line 28 of file SampleProf.h.

Enumerator
scConstant 
scTruncate 
scZeroExtend 
scSignExtend 
scAddExpr 
scMulExpr 
scUDivExpr 
scAddRecExpr 
scUMaxExpr 
scSMaxExpr 
scUnknown 
scCouldNotCompute 

Definition at line 27 of file ScalarEvolutionExpressions.h.

SelectPatternFlavor - We can match a variety of different patterns for select operations.

Enumerator
SPF_UNKNOWN 
SPF_SMIN 
SPF_UMIN 
SPF_SMAX 
SPF_UMAX 
SPF_ABS 
SPF_NABS 

Definition at line 39 of file InstCombine.h.

Enumerator
SingleThread 
CrossThread 

Definition at line 48 of file Instructions.h.

TransformKind - Different types of transformations that TransformForPostIncUse can do.

Enumerator
Normalize 

Normalize - Normalize according to the given loops.

NormalizeAutodetect 

NormalizeAutodetect - Detect post-inc opportunities on new expressions, update the given loop set, and normalize.

Denormalize 

Denormalize - Perform the inverse transform on the expression with the given loop set.

Definition at line 52 of file ScalarEvolutionNormalization.h.

The behavior an operation has on an input of 0.

Enumerator
ZB_Undefined 

The returned value is undefined.

ZB_Max 

The returned value is numeric_limits<T>::max()

ZB_Width 

The returned value is numeric_limits<T>::digits.

Definition at line 29 of file MathExtras.h.

Function Documentation

void llvm::__deregister_frame ( void *  p)
void llvm::__register_frame ( void *  p)
static AArch64Layout::VectorLayout llvm::AArch64StringToVectorLayout ( StringRef  LayoutStr)
inlinestatic
static const char* llvm::AArch64VectorLayoutToString ( AArch64Layout::VectorLayout  Layout)
inlinestatic
APFloat llvm::abs ( APFloat  X)
inline

Returns the absolute value of the argument.

Definition at line 653 of file APFloat.h.

References llvm::APFloat::clearSign(), and X.

int64_t llvm::abs64 ( int64_t  x)
inline

abs64 - absolute value of a 64-bit int. Not all environments support "abs" on whatever their name for the 64-bit int type is. The absolute value of the largest negative number is undefined, as with "abs".

Definition at line 614 of file MathExtras.h.

Referenced by getNewAlignmentDiff(), llvm::ARMTargetLowering::isLegalAddImmediate(), and llvm::ARMTargetLowering::isLegalICmpImmediate().

void llvm::AddCatchInfo ( const CallInst I,
MachineModuleInfo MMI,
MachineBasicBlock MBB 
)
static const MachineInstrBuilder& llvm::addConstantPoolReference ( const MachineInstrBuilder &  MIB,
unsigned  CPI,
unsigned  GlobalBaseReg,
unsigned char  OpFlags 
)
inlinestatic

addConstantPoolReference - This function is used to add a reference to the base of a constant value spilled to the per-function constant pool. The reference uses the abstract ConstantPoolIndex which is retained until either machine code emission or assembly output. In PIC mode on x86-32, the GlobalBaseReg parameter can be used to make this a GlobalBaseReg-relative reference.

Definition at line 175 of file X86InstrBuilder.h.

References llvm::MachineInstrBuilder::addConstantPoolIndex(), llvm::MachineInstrBuilder::addImm(), and llvm::MachineInstrBuilder::addReg().

static const MachineInstrBuilder& llvm::AddDefaultCC ( const MachineInstrBuilder &  MIB)
inlinestatic
static const MachineInstrBuilder& llvm::AddDefaultPred ( const MachineInstrBuilder &  MIB)
inlinestatic

Definition at line 385 of file ARMBaseInstrInfo.h.

References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), and llvm::ARMCC::AL.

Referenced by llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::ARMBaseInstrInfo::breakPartialRegDependency(), llvm::ARMBaseInstrInfo::copyFromCPSR(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::Thumb2InstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyToCPSR(), llvm::Thumb1RegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), emitAligningInstructions(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), emitPostLd(), emitPostSt(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), emitT2RegPlusImmediate(), emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), llvm::ARMBaseInstrInfo::expandLoadStackGuardBase(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), llvm::ARMBaseInstrInfo::FoldImmediate(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), rewriteT2FrameIndex(), llvm::Thumb1RegisterInfo::saveScavengerRegister(), llvm::ARMBaseInstrInfo::setExecutionDomain(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), and llvm::ARMBaseInstrInfo::storeRegToStackSlot().

static const MachineInstrBuilder& llvm::AddDefaultT1CC ( const MachineInstrBuilder &  MIB,
bool  isDead = false 
)
inlinestatic
static const MachineInstrBuilder& llvm::addDirectMem ( const MachineInstrBuilder &  MIB,
unsigned  Reg 
)
inlinestatic

addDirectMem - This function is used to add a direct memory reference to the current instruction – that is, a dereference of an address in a register, with no scale, index or displacement. An example is: DWORD PTR [EAX].

Definition at line 91 of file X86InstrBuilder.h.

References llvm::MachineInstrBuilder::addImm(), and llvm::MachineInstrBuilder::addReg().

static const MachineInstrBuilder& llvm::addFrameReference ( const MachineInstrBuilder &  MIB,
int  FI 
)
inlinestatic
static const MachineInstrBuilder& llvm::addFrameReference ( const MachineInstrBuilder &  MIB,
int  FI,
int  Offset = 0,
bool  mem = true 
)
inlinestatic
static const MachineInstrBuilder& llvm::addFrameReference ( const MachineInstrBuilder &  MIB,
int  FI,
int  Offset = 0 
)
inlinestatic

addFrameReference - This function is used to add a reference to the base of an abstract object on the stack frame of the current function. This reference has base register as the FrameIndex offset until it is resolved. This allows a constant offset to be specified as well...

Definition at line 149 of file X86InstrBuilder.h.

References llvm::MachineInstrBuilder::addFrameIndex(), addOffset(), llvm::MachineInstr::getDesc(), llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlignment(), llvm::MachineFrameInfo::getObjectSize(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MCInstrDesc::mayLoad(), llvm::MCInstrDesc::mayStore(), llvm::AArch64CC::MI, llvm::MachineMemOperand::MOLoad, and llvm::MachineMemOperand::MOStore.

static const MachineInstrBuilder& llvm::addFullAddress ( const MachineInstrBuilder &  MIB,
const X86AddressMode &  AM 
)
inlinestatic
void llvm::AddLandingPadInfo ( const LandingPadInst I,
MachineModuleInfo MMI,
MachineBasicBlock MBB 
)
void llvm::addNodeToInterval ( Interval *  Int,
BasicBlock *  BB 
)
inline

Definition at line 68 of file IntervalIterator.h.

References llvm::Interval::Nodes.

void llvm::addNodeToInterval ( Interval *  Int,
Interval *  I 
)
inline

Definition at line 79 of file IntervalIterator.h.

References llvm::Interval::Nodes.

static const MachineInstrBuilder& llvm::AddNoT1CC ( const MachineInstrBuilder &  MIB)
inlinestatic

Definition at line 401 of file ARMBaseInstrInfo.h.

References llvm::MachineInstrBuilder::addReg().

static const MachineInstrBuilder& llvm::addOffset ( const MachineInstrBuilder &  MIB,
int  Offset 
)
inlinestatic
static Constant* llvm::AddOne ( Constant *  C)
inlinestatic
static const MachineInstrBuilder& llvm::addRegOffset ( const MachineInstrBuilder &  MIB,
unsigned  Reg,
bool  isKill,
int  Offset 
)
inlinestatic

addRegOffset - This function is used to add a memory reference of the form [Reg + Offset], i.e., one with no scale or index, but with a displacement. An example is: DWORD PTR [EAX + 4].

Definition at line 108 of file X86InstrBuilder.h.

References addOffset(), llvm::MachineInstrBuilder::addReg(), and getKillRegState().

Referenced by llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::X86FrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitPrologue(), and emitSPUpdate().

static const MachineInstrBuilder& llvm::addRegReg ( const MachineInstrBuilder &  MIB,
unsigned  Reg1,
bool  isKill1,
unsigned  Reg2,
bool  isKill2 
)
inlinestatic

addRegReg - This function is used to add a memory reference of the form: [Reg + Reg].

Definition at line 115 of file X86InstrBuilder.h.

References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), and getKillRegState().

Referenced by llvm::X86InstrInfo::convertToThreeAddress().

uintptr_t llvm::alignAddr ( void *  Addr,
size_t  Alignment 
)
inline

Aligns Addr to Alignment bytes, rounding up.

Alignment should be a power of two. This method rounds up, so alignAddr(7, 4) == 8 and alignAddr(8, 4) == 8.

Definition at line 556 of file MathExtras.h.

References assert(), and isPowerOf2_64().

Referenced by alignmentAdjustment(), llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold >::Allocate(), and llvm::SpecificBumpPtrAllocator< llvm::LazyCallGraph::SCC >::DestroyAll().

size_t llvm::alignmentAdjustment ( void *  Ptr,
size_t  Alignment 
)
inline

Returns the necessary adjustment for aligning Ptr to Alignment bytes, rounding up.

Definition at line 567 of file MathExtras.h.

References alignAddr().

Referenced by llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold >::Allocate().

template<typename T >
unsigned llvm::alignOf ( )
inline

alignOf - A templated function that returns the minimum alignment of of a type. This provides no extra functionality beyond the AlignOf class besides some cosmetic cleanliness. Example usage: alignOf<int>() returns the alignment of an int.

Definition at line 58 of file AlignOf.h.

void llvm::appendToGlobalCtors ( Module M,
Function F,
int  Priority 
)

Append F to the list of global ctors of module M with the given Priority. This wraps the function in the appropriate structure and stores it along side other global constructors. For details see http://llvm.org/docs/LangRef.html#intg_global_ctors

Definition at line 72 of file ModuleUtils.cpp.

References appendToGlobalArray().

void llvm::appendToGlobalDtors ( Module M,
Function F,
int  Priority 
)

Same as appendToGlobalCtors(), but for global dtors.

Definition at line 76 of file ModuleUtils.cpp.

References appendToGlobalArray().

static const SCEV* llvm::apply ( const SCEV *  Scev,
LoopToScevMapT &  Map,
ScalarEvolution &  SE 
)
inlinestatic

Applies the Map (Loop -> SCEV) to the given Scev.

Definition at line 827 of file ScalarEvolutionExpressions.h.

References llvm::SCEVApplyRewriter::rewrite().

static uint16_t llvm::applyPPCha ( uint64_t  value)
inlinestatic

Definition at line 689 of file RuntimeDyldELF.cpp.

static uint16_t llvm::applyPPChi ( uint64_t  value)
inlinestatic

Definition at line 685 of file RuntimeDyldELF.cpp.

static uint16_t llvm::applyPPChigher ( uint64_t  value)
inlinestatic

Definition at line 693 of file RuntimeDyldELF.cpp.

static uint16_t llvm::applyPPChighera ( uint64_t  value)
inlinestatic

Definition at line 697 of file RuntimeDyldELF.cpp.

static uint16_t llvm::applyPPChighest ( uint64_t  value)
inlinestatic

Definition at line 701 of file RuntimeDyldELF.cpp.

static uint16_t llvm::applyPPChighesta ( uint64_t  value)
inlinestatic

Definition at line 705 of file RuntimeDyldELF.cpp.

static uint16_t llvm::applyPPClo ( uint64_t  value)
inlinestatic

Definition at line 683 of file RuntimeDyldELF.cpp.

bool llvm::AreStatisticsEnabled ( )

Check if statistics are enabled.

Definition at line 96 of file Statistic.cpp.

References Enabled.

static const char* llvm::ARMCondCodeToString ( ARMCC::CondCodes  CC)
inlinestatic
template<class T , std::size_t N>
LLVM_CONSTEXPR size_t llvm::array_lengthof ( T(&)  [N])
inline

Find the length of an array.

Definition at line 310 of file STLExtras.h.

References N.

Referenced by llvm::AArch64TargetLowering::AArch64TargetLowering(), llvm::TargetLoweringBase::addRegisterClass(), llvm::PPCRegisterInfo::adjustStackMapLiveOutMask(), AnalyzeArguments(), llvm::ARMBaseInstrInfo::ARMBaseInstrInfo(), llvm::AtomicSDNode::AtomicSDNode(), canLowerByDroppingEvenElements(), CC_PPC32_SVR4_Custom_AlignArgRegs(), CC_PPC32_SVR4_Custom_AlignFPArgRegs(), CombineSymbolTypes(), convertAddSubFlagsOpcode(), llvm::PPCInstrInfo::DefinesPredicate(), llvm::MCDwarfLineTableHeader::Emit(), llvm::ArrayRef< uint64_t >::equals(), llvm::AArch64SysReg::SysRegMapper::fromString(), getAllocationData(), llvm::SystemZFrameLowering::getCalleeSavedSpillSlots(), llvm::PPCFrameLowering::getCalleeSavedSpillSlots(), getConcreteOpcode(), llvm::TargetLoweringBase::getCondCodeAction(), llvm::MCAsmBackend::getFixupKindInfo(), getLdStNInstrDesc(), llvm::SelectionDAG::getMachineNode(), llvm::TargetLoweringBase::getNumRegisters(), llvm::TargetLoweringBase::getOperationAction(), llvm::TargetLoweringBase::getRegisterType(), llvm::object::MachOObjectFile::getRelocationTypeName(), llvm::MipsRegisterInfo::getReservedRegs(), llvm::AMDGPURegisterInfo::getSubRegFromChannel(), llvm::TargetLoweringBase::getTypeConversion(), llvm::TargetLoweringBase::hasTargetDAGCombine(), llvm::raw_ostream::indent(), llvm::TargetLoweringBase::initActions(), isF128SoftLibCall(), isImageOrSamplerVal(), llvm::TargetLoweringBase::isTypeLegal(), lookup(), lookupAVX2(), LookupNEONLdSt(), LowerVECTOR_SHUFFLE_256(), llvm::MipsSETargetLowering::MipsSETargetLowering(), llvm::SelectionDAG::MorphNodeTo(), llvm::AArch64SysReg::MRSMapper::MRSMapper(), llvm::AArch64SysReg::MSRMapper::MSRMapper(), llvm::Triple::normalize(), llvm::X86TargetLowering::resetOperationActions(), llvm::TargetLoweringBase::setCondCodeAction(), llvm::TargetLoweringBase::setOperationAction(), llvm::TargetLoweringBase::setTargetDAGCombine(), llvm::SystemZFrameLowering::SystemZFrameLowering(), llvm::AArch64SysReg::SysRegMapper::toString(), and llvm::X86InstrInfo::X86InstrInfo().

template<class IteratorTy >
void llvm::array_pod_sort ( IteratorTy  Start,
IteratorTy  End 
)
inline

array_pod_sort - This sorts an array with the specified start and end extent. This is just like std::sort, except that it calls qsort instead of using an inlined template. qsort is slightly slower than std::sort, but most sorts are not performance critical in LLVM and std::sort has to be template instantiated for each type, leading to significant measured code bloat. This function should generally be used instead of std::sort where possible.

This function assumes that you have simple POD-like types that can be compared with std::less and can be moved with memcpy. If this isn't true, you should use std::sort.

NOTE: If qsort_r were portable, we could allow a custom comparator and default to std::less.

Definition at line 350 of file STLExtras.h.

References get_array_pod_sort_comparator, and llvm::LibFunc::qsort.

Referenced by accumulateAndSortLibcalls(), llvm::X86TargetLowering::ExpandInlineAsm(), llvm::AttributeSetNode::get(), llvm::PassNameParser::printOptionInfo(), llvm::TargetRegistry::printRegisteredTargetsForVersion(), llvm::Inliner::removeDeadFunctions(), setUsedInitializer(), SimplifyBranchOnICmpChain(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), sortRelocs(), TurnSwitchRangeIntoICmp(), and ValuesOverlap().

template<class IteratorTy >
void llvm::array_pod_sort ( IteratorTy  Start,
IteratorTy  End,
int(*)(const typename std::iterator_traits< IteratorTy >::value_type *, const typename std::iterator_traits< IteratorTy >::value_type *)  Compare 
)
inline

Definition at line 358 of file STLExtras.h.

References llvm::MCID::Compare, and llvm::LibFunc::qsort.

template<typename T >
int llvm::array_pod_sort_comparator ( const void *  P1,
const void *  P2 
)
inline

Adapt std::less<T> for array_pod_sort.

Definition at line 316 of file STLExtras.h.

bool llvm::baseRegNeedsLoadStoreMask ( unsigned  Reg)

Definition at line 249 of file MipsNaClELFStreamer.cpp.

References llvm::X86II::T8.

const std::error_category & llvm::BitcodeErrorCategory ( )

Definition at line 3674 of file BitcodeReader.cpp.

References ErrorCategory.

Referenced by make_error_code().

double llvm::BitsToDouble ( uint64_t  Bits)
inline

BitsToDouble - This function takes a 64-bit integer and returns the bit equivalent double.

Definition at line 487 of file MathExtras.h.

References llvm::tgtok::Bits, and T.

Referenced by llvm::X86TargetLowering::BuildFILD(), and llvm::X86TargetLowering::ReplaceNodeResults().

float llvm::BitsToFloat ( uint32_t  Bits)
inline

BitsToFloat - This function takes a 32-bit integer and returns the bit equivalent float.

Definition at line 498 of file MathExtras.h.

References llvm::tgtok::Bits, F(), I, and T.

MachineInstrBuilder llvm::BuildMI ( MachineFunction &  MF,
DebugLoc  DL,
const MCInstrDesc &  MCID 
)
inline

BuildMI - Builder interface. Specify how to create the initial instruction itself.

Definition at line 234 of file MachineInstrBuilder.h.

References llvm::MachineFunction::CreateMachineInstr().

Referenced by llvm::MachineBasicBlock::addLiveIn(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::MipsSEInstrInfo::adjustStackPtr(), llvm::SparcInstrInfo::AnalyzeBranch(), llvm::X86InstrInfo::AnalyzeBranch(), llvm::ARMBaseInstrInfo::breakPartialRegDependency(), llvm::X86InstrInfo::breakPartialRegDependency(), llvm::Mips16InstrInfo::BuildAddiuSpImm(), llvm::R600InstrInfo::buildDefaultInstruction(), llvm::SIInstrInfo::buildIndirectRead(), llvm::SIInstrInfo::buildIndirectWrite(), BuildMI(), llvm::SIInstrInfo::buildMovInstr(), llvm::SIInstrInfo::calculateLDSSpillAddress(), llvm::X86InstrInfo::classifyLEAReg(), llvm::PPCInstrInfo::commuteInstruction(), llvm::FastISel::constrainOperandRegClass(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::ARMBaseInstrInfo::copyFromCPSR(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::Thumb2InstrInfo::copyPhysReg(), llvm::Mips16InstrInfo::copyPhysReg(), llvm::MipsSEInstrInfo::copyPhysReg(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::MSP430InstrInfo::copyPhysReg(), llvm::XCoreInstrInfo::copyPhysReg(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::SparcInstrInfo::copyPhysReg(), llvm::SIInstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysReg(), llvm::PPCInstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyPhysReg(), llvm::SystemZInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysRegTuple(), llvm::ARMBaseInstrInfo::copyToCPSR(), llvm::MSP430FrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreFrameLowering::eliminateCallFramePseudoInstr(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), emitAligningInstructions(), emitARMRegPlusImmediate(), llvm::PPCTargetLowering::EmitAtomicBinary(), llvm::AArch64FrameLowering::emitCalleeSavedFrameMoves(), llvm::X86FrameLowering::emitCalleeSavedFrameMoves(), EmitCfiOffset(), llvm::InstrEmitter::EmitDbgValue(), EmitDefCfaOffset(), EmitDefCfaRegister(), llvm::PPCTargetLowering::emitEHSjLjLongJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::Mips16FrameLowering::emitEpilogue(), llvm::HexagonFrameLowering::emitEpilogue(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::AArch64TargetLowering::EmitF128CSEL(), llvm::AArch64InstrInfo::emitFrameIndexDebugValue(), emitFrameOffset(), emitGPDisp(), emitIncrement(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::MachineRegisterInfo::EmitLiveInCopies(), llvm::Thumb2RegisterInfo::emitLoadConstPool(), llvm::Thumb1RegisterInfo::emitLoadConstPool(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), EmitMonitor(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), llvm::TargetLoweringBase::emitPatchPoint(), EmitPCMPSTRI(), EmitPCMPSTRM(), emitPostLd(), emitPostSt(), llvm::Mips16FrameLowering::emitPrologue(), llvm::HexagonFrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitSPUpdate(), emitT2RegPlusImmediate(), emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), EmitXBegin(), llvm::SparcTargetLowering::expandAtomicRMW(), expandLoadStackGuard(), llvm::ARMBaseInstrInfo::expandLoadStackGuardBase(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::AArch64InstrInfo::expandPostRAPseudo(), llvm::SparcTargetLowering::expandSelectCC(), llvm::FastISel::fastEmitInst_(), llvm::FastISel::fastEmitInst_extractsubreg(), llvm::FastISel::fastEmitInst_i(), llvm::FastISel::fastEmitInst_ii(), llvm::FastISel::fastEmitInst_r(), llvm::FastISel::fastEmitInst_rf(), llvm::FastISel::fastEmitInst_ri(), llvm::FastISel::fastEmitInst_rii(), llvm::FastISel::fastEmitInst_rr(), llvm::FastISel::fastEmitInst_rri(), llvm::FastISel::fastEmitInst_rrii(), llvm::FastISel::fastEmitInst_rrr(), llvm::ARMFrameLowering::fixTCReturn(), llvm::ARMBaseInstrInfo::FoldImmediate(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), forceReg(), llvm::AArch64InstrInfo::genAlternativeCodeSequence(), llvm::MipsInstrInfo::genInstrWithNewOpc(), genMadd(), genMaddR(), llvm::SparcInstrInfo::getGlobalBaseReg(), HandleVRSaveUpdate(), IfNeededExtSP(), IfNeededLDAWSP(), llvm::XCoreInstrInfo::InsertBranch(), llvm::MipsInstrInfo::InsertBranch(), llvm::NVPTXInstrInfo::InsertBranch(), llvm::HexagonInstrInfo::InsertBranch(), llvm::SparcInstrInfo::InsertBranch(), llvm::MSP430InstrInfo::InsertBranch(), llvm::ARMBaseInstrInfo::InsertBranch(), llvm::AArch64InstrInfo::InsertBranch(), llvm::PPCInstrInfo::InsertBranch(), llvm::SystemZInstrInfo::InsertBranch(), llvm::R600InstrInfo::InsertBranch(), llvm::X86InstrInfo::InsertBranch(), insertCopy(), insertDivByZeroTrap(), InsertFPConstInst(), InsertFPImmInst(), InsertLDR_STR(), InsertNewDef(), llvm::MipsInstrInfo::insertNoop(), llvm::PPCInstrInfo::insertNoop(), insertNopBeforeInstruction(), llvm::SIInstrInfo::insertNOPs(), llvm::AArch64InstrInfo::insertSelect(), llvm::PPCInstrInfo::insertSelect(), llvm::X86InstrInfo::insertSelect(), InsertSPConstInst(), InsertSPImmInst(), llvm::SIInstrInfo::legalizeOperands(), llvm::SIInstrInfo::legalizeOpWithMove(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::Mips16InstrInfo::loadImmediate(), llvm::XCoreInstrInfo::loadImmediate(), llvm::SystemZInstrInfo::loadImmediate(), llvm::X86InstrInfo::loadRegFromAddr(), llvm::Mips16InstrInfo::loadRegFromStack(), llvm::MipsSEInstrInfo::loadRegFromStack(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::XCoreInstrInfo::loadRegFromStackSlot(), llvm::SparcInstrInfo::loadRegFromStackSlot(), llvm::HexagonInstrInfo::loadRegFromStackSlot(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::SystemZInstrInfo::loadRegFromStackSlot(), llvm::X86InstrInfo::loadRegFromStackSlot(), llvm::PPCRegisterInfo::lowerCRBitRestore(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerVRSAVERestore(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), llvm::Mips16InstrInfo::makeFrame(), MakeM0Inst(), llvm::AArch64RegisterInfo::materializeFrameBaseRegister(), llvm::PPCRegisterInfo::materializeFrameBaseRegister(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), llvm::SIInstrInfo::moveSMRDToVALU(), llvm::SIInstrInfo::moveToVALU(), llvm::PPCInstrInfo::optimizeCompareInstr(), llvm::AArch64InstrInfo::optimizeCondBranch(), llvm::ARMBaseInstrInfo::optimizeSelect(), llvm::ARMBaseInstrInfo::reMaterialize(), llvm::X86InstrInfo::reMaterialize(), replaceFI(), llvm::SystemZFrameLowering::restoreCalleeSavedRegisters(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), llvm::MSP430FrameLowering::restoreCalleeSavedRegisters(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::X86FrameLowering::restoreCalleeSavedRegisters(), restoreCRs(), llvm::Mips16InstrInfo::restoreFrame(), RestoreSpillList(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::Thumb1RegisterInfo::saveScavengerRegister(), llvm::FastISel::selectBitCast(), llvm::FastISel::selectCall(), llvm::FastISel::selectIntrinsicCall(), llvm::FastISel::selectPatchpoint(), llvm::FastISel::selectStackmap(), llvm::FunctionLoweringInfo::set(), setCallTargetReg(), llvm::ARMBaseInstrInfo::setExecutionDomain(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::MSP430FrameLowering::spillCalleeSavedRegisters(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), llvm::SIInstrInfo::splitSMRD(), llvm::X86InstrInfo::storeRegToAddr(), llvm::Mips16InstrInfo::storeRegToStack(), llvm::MipsSEInstrInfo::storeRegToStack(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::SystemZInstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::storeRegToStackSlot(), tryOrrMovk(), trySequenceOfOnes(), and tryToreplicateChunks().

MachineInstrBuilder llvm::BuildMI ( MachineFunction &  MF,
DebugLoc  DL,
const MCInstrDesc &  MCID,
unsigned  DestReg 
)
inline

BuildMI - This version of the builder sets up the first operand as a destination virtual register.

Definition at line 243 of file MachineInstrBuilder.h.

References llvm::MachineFunction::CreateMachineInstr(), and llvm::RegState::Define.

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock &  BB,
MachineBasicBlock::iterator  I,
DebugLoc  DL,
const MCInstrDesc &  MCID,
unsigned  DestReg 
)
inline

BuildMI - This version of the builder inserts the newly-built instruction before the given position in the given MachineBasicBlock, and sets up the first operand as a destination virtual register.

Definition at line 255 of file MachineInstrBuilder.h.

References llvm::MachineInstrBuilder::addReg(), llvm::MachineFunction::CreateMachineInstr(), llvm::RegState::Define, llvm::MachineBasicBlock::getParent(), llvm::MachineBasicBlock::insert(), and llvm::AArch64CC::MI.

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock &  BB,
MachineBasicBlock::instr_iterator  I,
DebugLoc  DL,
const MCInstrDesc &  MCID,
unsigned  DestReg 
)
inline
MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock &  BB,
MachineInstr *  I,
DebugLoc  DL,
const MCInstrDesc &  MCID,
unsigned  DestReg 
)
inline

Definition at line 277 of file MachineInstrBuilder.h.

References BuildMI(), I, and llvm::MachineInstr::isInsideBundle().

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock &  BB,
MachineBasicBlock::iterator  I,
DebugLoc  DL,
const MCInstrDesc &  MCID 
)
inline

BuildMI - This version of the builder inserts the newly-built instruction before the given position in the given MachineBasicBlock, and does NOT take a destination register.

Definition at line 295 of file MachineInstrBuilder.h.

References llvm::MachineFunction::CreateMachineInstr(), llvm::MachineBasicBlock::getParent(), llvm::MachineBasicBlock::insert(), and llvm::AArch64CC::MI.

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock &  BB,
MachineBasicBlock::instr_iterator  I,
DebugLoc  DL,
const MCInstrDesc &  MCID 
)
inline
MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock &  BB,
MachineInstr *  I,
DebugLoc  DL,
const MCInstrDesc &  MCID 
)
inline

Definition at line 315 of file MachineInstrBuilder.h.

References BuildMI(), I, and llvm::MachineInstr::isInsideBundle().

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock *  BB,
DebugLoc  DL,
const MCInstrDesc &  MCID 
)
inline

BuildMI - This version of the builder inserts the newly-built instruction at the end of the given MachineBasicBlock, and does NOT take a destination register.

Definition at line 332 of file MachineInstrBuilder.h.

References BuildMI(), DL, and llvm::MachineBasicBlock::end().

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock *  BB,
DebugLoc  DL,
const MCInstrDesc &  MCID,
unsigned  DestReg 
)
inline

BuildMI - This version of the builder inserts the newly-built instruction at the end of the given MachineBasicBlock, and sets up the first operand as a destination virtual register.

Definition at line 342 of file MachineInstrBuilder.h.

References BuildMI(), DL, and llvm::MachineBasicBlock::end().

MachineInstrBuilder llvm::BuildMI ( MachineFunction &  MF,
DebugLoc  DL,
const MCInstrDesc &  MCID,
bool  IsIndirect,
unsigned  Reg,
unsigned  Offset,
const MDNode *  Variable,
const MDNode *  Expr 
)
inline

BuildMI - This version of the builder builds a DBG_VALUE intrinsic for either a value in a register or a register-indirect+offset address. The convention is that a DBG_VALUE is indirect iff the second operand is an immediate.

Definition at line 354 of file MachineInstrBuilder.h.

References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMetadata(), llvm::MachineInstrBuilder::addReg(), assert(), BuildMI(), llvm::RegState::Debug, and Verify.

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock &  BB,
MachineBasicBlock::iterator  I,
DebugLoc  DL,
const MCInstrDesc &  MCID,
bool  IsIndirect,
unsigned  Reg,
unsigned  Offset,
const MDNode *  Variable,
const MDNode *  Expr 
)
inline

BuildMI - This version of the builder builds a DBG_VALUE intrinsic for either a value in a register or a register-indirect+offset address and inserts it at position I.

Definition at line 380 of file MachineInstrBuilder.h.

References assert(), BuildMI(), llvm::MachineBasicBlock::getParent(), llvm::MachineBasicBlock::insert(), llvm::AArch64CC::MI, and Verify.

bool llvm::bypassSlowDivision ( Function F,
Function::iterator I,
const DenseMap< unsigned int, unsigned int > &  BypassWidth 
)

This optimization identifies DIV instructions that can be profitably bypassed and carried out with a shorter, faster divide.

Definition at line 223 of file BypassSlowDivision.cpp.

References llvm::X86ISD::BT, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::IntegerType::get(), llvm::IntegerType::getBitWidth(), and reuseOrInsertFastDiv().

uint16_t llvm::ByteSwap_16 ( uint16_t  Value)
inline

ByteSwap_16 - This function returns a byte-swapped representation of the 16-bit argument, Value.

Definition at line 374 of file MathExtras.h.

References llvm::sys::SwapByteOrder_16().

Referenced by llvm::APInt::byteSwap().

uint32_t llvm::ByteSwap_32 ( uint32_t  Value)
inline

ByteSwap_32 - This function returns a byte-swapped representation of the 32-bit argument, Value.

Definition at line 380 of file MathExtras.h.

References llvm::sys::SwapByteOrder_32().

Referenced by llvm::APInt::byteSwap().

uint64_t llvm::ByteSwap_64 ( uint64_t  Value)
inline

ByteSwap_64 - This function returns a byte-swapped representation of the 64-bit argument, Value.

Definition at line 386 of file MathExtras.h.

References llvm::sys::SwapByteOrder_64().

Referenced by llvm::APInt::byteSwap().

template<class T >
SmallVectorImpl<T>::const_pointer llvm::c_str ( SmallVectorImpl< T > &  str)
template<class FuncT , class NodeT >
void llvm::Calculate ( DominatorTreeBase< typename GraphTraits< NodeT >::NodeType > &  DT,
FuncT &  F 
)
template<class FuncT , class N >
void llvm::Calculate ( DominatorTreeBase< typename GraphTraits< N >::NodeType > &  DT,
FuncT &  F 
)
void llvm::calculateDbgValueHistory ( const MachineFunction MF,
const TargetRegisterInfo TRI,
DbgValueHistoryMap Result 
)
void llvm::calculateSpillWeightsAndHints ( LiveIntervals LIS,
MachineFunction MF,
const MachineLoopInfo MLI,
const MachineBlockFrequencyInfo MBFI,
VirtRegAuxInfo::NormalizingFn  norm = normalizeSpillWeight 
)
template<typename PassName >
Pass* llvm::callDefaultCtor ( )

Definition at line 95 of file PassSupport.h.

bool llvm::callIsSmall ( ImmutableCallSite  CS)

Check whether a call will lower to something small.

This tests checks whether this callsite will lower to something significantly cheaper than a traditional call, often a single instruction. Note that if isInstructionFree(CS.getInstruction()) would return true, so will this function.

template<typename PassName >
Pass* llvm::callTargetMachineCtor ( TargetMachine *  TM)

Definition at line 97 of file PassSupport.h.

bool llvm::canBeOmittedFromSymbolTable ( const GlobalValue GV)
bool llvm::canConstantFoldCallTo ( const Function F)
unsigned llvm::canFoldARMInstrIntoMOVCC ( unsigned  Reg,
MachineInstr *&  MI,
const MachineRegisterInfo &  MRI 
)

Determine if MI can be folded into an ARM MOVCC instruction, and return the opcode of the SSA instruction representing the conditional MI.

bool llvm::CannotBeNegativeZero ( const Value V,
unsigned  Depth = 0 
)

CannotBeNegativeZero - Return true if we can prove that the specified FP value is never equal to -0.0.

Return true if we can prove that the specified FP value is never equal to -0.0.

NOTE: this function will need to be revisited when we support non-default rounding modes!

Definition at line 1999 of file ValueTracking.cpp.

References dyn_cast(), F(), llvm::Operator::getOpcode(), llvm::User::getOperand(), I, and llvm::Intrinsic::sqrt.

Referenced by SimplifyFAddInst(), and SimplifyFSubInst().

template<typename T >
static size_t llvm::capacity_in_bytes ( const T x)
inlinestatic

Definition at line 23 of file Capacity.h.

template<typename T , unsigned N>
static size_t llvm::capacity_in_bytes ( const SmallVector< T, N > &  X)
inlinestatic

Definition at line 927 of file SmallVector.h.

References llvm::SmallVectorBase::capacity_in_bytes().

template<typename KeyT , typename ValueT , typename KeyInfoT >
static size_t llvm::capacity_in_bytes ( const DenseMap< KeyT, ValueT, KeyInfoT > &  X)
inlinestatic
template<class X , class Y >
std::enable_if<!is_simple_type<Y>::value, typename cast_retty<X, const Y>::ret_type>::type llvm::cast ( const Y Val)
inline

Definition at line 222 of file Casting.h.

References assert(), X, and Y.

template<class X , class Y >
cast_retty<X, Y>::ret_type llvm::cast ( Y Val)
inline

Definition at line 229 of file Casting.h.

References assert(), X, and Y.

template<class X , class Y >
cast_retty<X, Y *>::ret_type llvm::cast ( Y Val)
inline

Definition at line 236 of file Casting.h.

References assert(), X, and Y.

template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT std::enable_if< !is_simple_type<Y>::value, typename cast_retty<X, const Y>::ret_type>::type llvm::cast_or_null ( const Y Val)
inline

Definition at line 248 of file Casting.h.

References assert().

template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT std::enable_if< !is_simple_type<Y>::value, typename cast_retty<X, Y>::ret_type>::type llvm::cast_or_null ( Y Val)
inline

Definition at line 258 of file Casting.h.

References assert().

template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT cast_retty<X, Y *>::ret_type llvm::cast_or_null ( Y Val)
inline

Definition at line 267 of file Casting.h.

References assert().

Value * llvm::CastToCStr ( Value V,
IRBuilder<> &  B 
)
static bool llvm::CC_ARM_AAPCS_Custom_f64 ( unsigned ValNo,
MVT &  ValVT,
MVT &  LocVT,
CCValAssign::LocInfo &  LocInfo,
ISD::ArgFlagsTy &  ArgFlags,
CCState &  State 
)
static

Definition at line 112 of file ARMCallingConv.h.

References f64AssignAAPCS(), and llvm::MVT::v2f64.

static bool llvm::CC_ARM_AAPCS_Custom_HA ( unsigned ValNo,
MVT &  ValVT,
MVT &  LocVT,
CCValAssign::LocInfo &  LocInfo,
ISD::ArgFlagsTy &  ArgFlags,
CCState &  State 
)
static
static bool llvm::CC_ARM_APCS_Custom_f64 ( unsigned ValNo,
MVT &  ValVT,
MVT &  LocVT,
CCValAssign::LocInfo &  LocInfo,
ISD::ArgFlagsTy &  ArgFlags,
CCState &  State 
)
static

Definition at line 58 of file ARMCallingConv.h.

References f64AssignAPCS(), and llvm::MVT::v2f64.

bool llvm::CC_PPC32_SVR4_Custom_AlignArgRegs ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)
bool llvm::CC_PPC32_SVR4_Custom_AlignFPArgRegs ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)
bool llvm::CC_PPC32_SVR4_Custom_Dummy ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)

Definition at line 2162 of file PPCISelLowering.cpp.

bool llvm::CC_PPC_AnyReg_Error ( unsigned ,
MVT &  ,
MVT &  ,
CCValAssign::LocInfo &  ,
ISD::ArgFlagsTy &  ,
CCState &   
)
inline

Definition at line 23 of file PPCCallingConv.h.

References llvm_unreachable.

bool llvm::CC_X86_32_VectorCallIndirect ( unsigned ValNo,
MVT &  ValVT,
MVT &  LocVT,
CCValAssign::LocInfo &  LocInfo,
ISD::ArgFlagsTy &  ArgFlags,
CCState &  State 
)
inline
bool llvm::CC_X86_AnyReg_Error ( unsigned ,
MVT &  ,
MVT &  ,
CCValAssign::LocInfo &  ,
ISD::ArgFlagsTy &  ,
CCState &   
)
inline

Definition at line 36 of file X86CallingConv.h.

References llvm_unreachable.

static Intrinsic::ID llvm::checkBinaryFloatSignature ( const CallInst &  I,
Intrinsic::ID  ValidIntrinsicID 
)
static
bool llvm::CheckBitcodeOutputToConsole ( raw_ostream stream_to_check,
bool  print_warning = true 
)

Check for output written to a console.

Determine if the raw_ostream provided is connected to a terminal. If so, generate a warning message to errs() advising against display of bitcode and return true. Otherwise just return false.

Parameters
stream_to_checkThe stream to be checked
print_warningControl whether warnings are printed

Definition at line 21 of file SystemUtils.cpp.

References errs(), and llvm::raw_ostream::is_displayed().

void llvm::checkForCycles ( const SDNode N,
const SelectionDAG DAG = nullptr,
bool  force = false 
)

Definition at line 6845 of file SelectionDAG.cpp.

References assert(), check(), and checkForCyclesHelper().

void llvm::checkForCycles ( const SelectionDAG DAG,
bool  force = false 
)
Type* llvm::checkGEPType ( Type Ty)
inline

Definition at line 781 of file Instructions.h.

References assert().

Referenced by llvm::GetElementPtrInst::getGEPReturnType().

static Intrinsic::ID llvm::checkUnaryFloatSignature ( const CallInst &  I,
Intrinsic::ID  ValidIntrinsicID 
)
static
DIVariable llvm::cleanseInlinedVariable ( MDNode DV,
LLVMContext VMContext 
)
void llvm::clearAnnotationCache ( const llvm::Module Mod)

Definition at line 38 of file NVPTXUtilities.cpp.

References annotationCache, and Lock.

Referenced by llvm::NVPTXAsmPrinter::doFinalization().

void llvm::CloneAndPruneFunctionInto ( Function NewFunc,
const Function OldFunc,
ValueToValueMapTy VMap,
bool  ModuleLevelChanges,
SmallVectorImpl< ReturnInst * > &  Returns,
const char *  NameSuffix = "",
ClonedCodeInfo CodeInfo = nullptr,
const DataLayout DL = nullptr,
Instruction TheCall = nullptr 
)

CloneAndPruneFunctionInto - This works exactly like CloneFunctionInto, except that it does some simple constant prop and DCE on the fly. The effect of this is to copy significantly less code in cases where (for example) a function call with constant arguments is inlined, and those constant arguments cause a significant amount of code in the callee to be dead. Since this doesn't produce an exactly copy of the input, it can't be used for things like CloneFunction or CloneModule.

If ModuleLevelChanges is false, VMap contains no non-identity GlobalValue mappings.

CloneAndPruneFunctionInto - This works exactly like CloneFunctionInto, except that it does some simple constant prop and DCE on the fly. The effect of this is to copy significantly less code in cases where (for example) a function call with constant arguments is inlined, and those constant arguments cause a significant amount of code in the callee to be dead. Since this doesn't produce an exact copy of the input, it can't be used for things like CloneFunction or CloneModule.

Definition at line 419 of file CloneFunction.cpp.

References llvm::Function::arg_begin(), llvm::Function::arg_end(), assert(), llvm::BasicBlock::back(), llvm::BasicBlock::begin(), llvm::Function::begin(), ConstantFoldTerminator(), llvm::ValueMap< KeyT, ValueT, Config >::count(), DeleteDeadBlock(), dyn_cast(), llvm::Function::end(), llvm::Instruction::eraseFromParent(), llvm::BasicBlock::eraseFromParent(), llvm::UndefValue::get(), llvm::Function::getBasicBlockList(), llvm::Function::getEntryBlock(), llvm::PHINode::getIncomingBlock(), llvm::PHINode::getIncomingValue(), llvm::BasicBlock::getInstList(), llvm::PHINode::getNumIncomingValues(), llvm::Instruction::getParent(), llvm::BasicBlock::getSinglePredecessor(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), I, llvm::BranchInst::isConditional(), MapValue(), llvm::AArch64CC::NV, pred_begin(), pred_end(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::iplist< NodeTy, Traits >::push_back(), recursivelySimplifyInstruction(), RemapInstruction(), llvm::PHINode::removeIncomingValue(), llvm::Value::replaceAllUsesWith(), RF_NoModuleLevelChanges, RF_None, llvm::PHINode::setIncomingBlock(), llvm::PHINode::setIncomingValue(), and llvm::SmallVectorTemplateCommon< T >::size().

Referenced by InlineFunction().

BasicBlock * llvm::CloneBasicBlock ( const BasicBlock BB,
ValueToValueMapTy VMap,
const Twine NameSuffix = "",
Function F = nullptr,
ClonedCodeInfo CodeInfo = nullptr 
)

CloneBasicBlock - Return a copy of the specified basic block, but without embedding the block into a particular function. The block returned is an exact copy of the specified basic block, without any remapping having been performed. Because of this, this is only suitable for applications where the basic block will be inserted into the same function that it was cloned from (loop unrolling would use this, for example).

Also, note that this function makes a direct copy of the basic block, and can thus produce illegal LLVM code. In particular, it will copy any PHI nodes from the original block, even though there are no predecessors for the newly cloned block (thus, phi nodes will have to be updated). Also, this block will branch to the old successors of the original block: these successors will have to have any PHI nodes updated to account for the new incoming edges.

The correlation between instructions in the source and result basic blocks is recorded in the VMap map.

If you have a particular suffix you'd like to use to add to any cloned names, specify it as the optional third parameter.

If you would like the basic block to be auto-inserted into the end of a function, you can specify it as the optional fourth parameter.

If you would like to collect additional information about the cloned function, you can specify a ClonedCodeInfo object with the optional fifth parameter.

Definition at line 38 of file CloneFunction.cpp.

References llvm::BasicBlock::begin(), llvm::Instruction::clone(), llvm::ClonedCodeInfo::ContainsCalls, llvm::ClonedCodeInfo::ContainsDynamicAllocas, llvm::BasicBlock::Create(), llvm::BasicBlock::end(), F(), llvm::BasicBlock::getContext(), llvm::Function::getEntryBlock(), llvm::BasicBlock::getInstList(), llvm::Value::getName(), llvm::BasicBlock::getParent(), llvm::Value::hasName(), llvm::ARM_PROC::IE, llvm::iplist< NodeTy, Traits >::push_back(), and llvm::Value::setName().

Referenced by CloneFunctionInto(), CloneLoopBlocks(), and UnrollLoop().

Function * llvm::CloneFunction ( const Function F,
ValueToValueMapTy VMap,
bool  ModuleLevelChanges,
ClonedCodeInfo CodeInfo = nullptr 
)

CloneFunction - Return a copy of the specified function, but without embedding the function into another module. Also, any references specified in the VMap are changed to refer to their mapped value instead of the original one. If any of the arguments to the function are in the VMap, the arguments are deleted from the resultant function. The VMap is updated to include mappings from all of the instructions and basicblocks in the function from their old to new values. The final argument captures information about the cloned code if non-null.

If ModuleLevelChanges is false, VMap contains no non-identity GlobalValue mappings, and debug info metadata will not be cloned.

CloneFunction - Return a copy of the specified function, but without embedding the function into another module. Also, any references specified in the VMap are changed to refer to their mapped value instead of the original one. If any of the arguments to the function are in the VMap, the arguments are deleted from the resultant function. The VMap is updated to include mappings from all of the instructions and basicblocks in the function from their old to new values.

Definition at line 213 of file CloneFunction.cpp.

References llvm::Function::arg_begin(), llvm::Function::arg_end(), CloneDebugInfoMetadata(), CloneFunctionInto(), llvm::ValueMap< KeyT, ValueT, Config >::count(), llvm::Function::Create(), llvm::FunctionType::get(), llvm::Function::getFunctionType(), llvm::GlobalValue::getLinkage(), llvm::Value::getName(), llvm::FunctionType::getReturnType(), I, and llvm::FunctionType::isVarArg().

void llvm::CloneFunctionInto ( Function NewFunc,
const Function OldFunc,
ValueToValueMapTy VMap,
bool  ModuleLevelChanges,
SmallVectorImpl< ReturnInst * > &  Returns,
const char *  NameSuffix = "",
ClonedCodeInfo CodeInfo = nullptr,
ValueMapTypeRemapper TypeMapper = nullptr,
ValueMaterializer Materializer = nullptr 
)
Module * llvm::CloneModule ( const Module M)

CloneModule - Return an exact copy of the specified module

CloneModule - Return an exact copy of the specified module. This is not as easy as it might seem because we have to worry about making copies of global variables and functions, and making their (initializers and references, respectively) refer to the right globals.

Definition at line 28 of file CloneModule.cpp.

Referenced by LLVMCloneModule().

Module * llvm::CloneModule ( const Module M,
ValueToValueMapTy VMap 
)
GlobalVariable * llvm::collectUsedGlobalVariables ( Module M,
SmallPtrSetImpl< GlobalValue * > &  Set,
bool  CompilerUsed 
)

Given "llvm.used" or "llvm.compiler.used" as a global name, collect the initializer elements of that global in Set and return the global itself.

Definition at line 81 of file ModuleUtils.cpp.

References G, llvm::Module::getGlobalVariable(), llvm::GlobalVariable::getInitializer(), llvm::User::getNumOperands(), llvm::User::getOperand(), llvm::GlobalVariable::hasInitializer(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), Name, and llvm::Value::stripPointerCastsNoFollowAliases().

void llvm::combineMetadata ( Instruction K,
const Instruction J,
ArrayRef< unsigned KnownIDs 
)
static bool llvm::CompareVars ( const ASanStackVariableDescription &  a,
const ASanStackVariableDescription &  b 
)
inlinestatic
static uint64_t llvm::computeAllocationSizeForSections ( std::vector< uint64_t > &  SectionSizes,
uint64_t  Alignment 
)
static

Definition at line 255 of file RuntimeDyld.cpp.

Referenced by llvm::RuntimeDyldImpl::computeTotalAllocSize().

void llvm::ComputeASanStackFrameLayout ( SmallVectorImpl< ASanStackVariableDescription > &  Vars,
size_t  Granularity,
size_t  MinHeaderSize,
ASanStackFrameLayout *  Layout 
)
static int64_t llvm::computeDelta ( SectionEntry A,
SectionEntry B 
)
static
template<typename T >
unsigned llvm::ComputeEditDistance ( ArrayRef< T FromArray,
ArrayRef< T ToArray,
bool  AllowReplacements = true,
unsigned  MaxEditDistance = 0 
)

Determine the edit distance between two sequences.

Parameters
FromArraythe first sequence to compare.
ToArraythe second sequence to compare.
AllowReplacementswhether to allow element replacements (change one element into another) as a single operation, rather than as two operations (an insertion and a removal).
MaxEditDistanceIf non-zero, the maximum edit distance that this routine is allowed to compute. If the edit distance will exceed that maximum, returns MaxEditDistance+1.
Returns
the minimum number of element insertions, removals, or (if AllowReplacements is true) replacements needed to transform one of the given sequences into the other. If zero, the sequences are identical.

Definition at line 43 of file edit_distance.h.

References llvm::ArrayRef< T >::size().

Referenced by llvm::StringRef::edit_distance().

void llvm::computeKnownBits ( Value V,
APInt KnownZero,
APInt KnownOne,
const DataLayout TD = nullptr,
unsigned  Depth = 0,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr 
)

Determine which bits of V are known to be either zero or one and return them in the KnownZero/KnownOne bit sets.

This function is defined on values with integer type, values with pointer type (but only if TD is non-null), and vectors of integers. In the case where V is a vector, the known zero and known one values are the same width as the vector element, and the bit is set only if it is true for all of the elements in the vector.

Definition at line 103 of file ValueTracking.cpp.

References safeCxtI().

Referenced by computeKnownBits(), llvm::InstCombiner::computeKnownBits(), computeKnownBitsAddSub(), computeKnownBitsFromAssume(), computeKnownBitsMul(), ComputeNumSignBits(), computeOverflowForUnsignedMul(), ComputeSignBit(), EliminateDeadSwitchCases(), llvm::ScalarEvolution::GetMinTrailingZeros(), getOrEnforceKnownAlignment(), llvm::ScalarEvolution::getUnsignedRange(), llvm::SelectionDAG::InferPtrAlignment(), isKnownNonZero(), isKnownToBeAPowerOfTwo(), isZero(), MaskedValueIsZero(), SimplifyICmpInst(), SimplifyRightShift(), SymbolicallyEvaluateBinop(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitCallInst(), llvm::InstCombiner::visitICmpInstWithInstAndIntCst(), llvm::InstCombiner::visitReturnInst(), and llvm::InstCombiner::visitSwitchInst().

void llvm::computeKnownBitsFromRangeMetadata ( const MDNode Ranges,
APInt KnownZero 
)

Compute known bits from the range metadata. KnownZero the set of bits that are known to be zero

Definition at line 304 of file ValueTracking.cpp.

References assert(), countLeadingZeros(), llvm::APInt::getBitWidth(), llvm::APInt::getHighBitsSet(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), and llvm::ConstantInt::getValue().

Referenced by computeKnownBits(), and llvm::SelectionDAG::computeKnownBits().

unsigned llvm::ComputeLinearIndex ( Type Ty,
const unsigned Indices,
const unsigned IndicesEnd,
unsigned  CurIndex = 0 
)

Compute the linearized index of a member in a nested aggregate/struct/array.

Given an LLVM IR aggregate type and a sequence of insertvalue or extractvalue indices that identify a member, return the linearized index of the start of the member, i.e the number of element in memory before the seeked one. This is disconnected from the number of bytes.

Parameters
Tyis the type indexed by Indices.
Indicesis an optional pointer in the indices list to the current index.
IndicesEndis the end of the indices list.
CurIndexis the current index in the recursion.
Returns
CurIndex plus the linear index in Ty the indices list.

Compute the linearized index of a member in a nested aggregate/struct/array by recursing and accumulating CurIndex as long as there are indices in the index list.

Definition at line 36 of file CodeGen/Analysis.cpp.

References assert().

Referenced by ComputeLinearIndex(), and llvm::FastISel::selectExtractValue().

unsigned llvm::ComputeLinearIndex ( Type Ty,
ArrayRef< unsigned Indices,
unsigned  CurIndex = 0 
)
inline
bool llvm::ComputeMultiple ( Value V,
unsigned  Base,
Value *&  Multiple,
bool  LookThroughSExt = false,
unsigned  Depth = 0 
)

ComputeMultiple - This function computes the integer multiple of Base that equals V. If successful, it returns true and returns the multiple in Multiple. If unsuccessful, it returns false. Also, if V can be simplified to an integer, then the simplified V is returned in Val. Look through sext only if LookThroughSExt=true.

This function computes the integer multiple of Base that equals V. If successful, it returns true and returns the multiple in Multiple. If unsuccessful, it returns false. It looks through SExt instructions only if LookThroughSExt is true.

Definition at line 1877 of file ValueTracking.cpp.

References assert(), dyn_cast(), llvm::ConstantInt::get(), llvm::APInt::getBitWidth(), llvm::Value::getContext(), llvm::APInt::getLimitedValue(), llvm::ConstantExpr::getMul(), llvm::Operator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::ConstantInt::getValue(), llvm::ConstantExpr::getZExt(), llvm::ConstantInt::getZExtValue(), I, llvm::Type::isIntegerTy(), MaxDepth, and llvm::APInt::setBit().

Referenced by computeArraySize().

unsigned llvm::ComputeNumSignBits ( Value Op,
const DataLayout TD = nullptr,
unsigned  Depth = 0,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr 
)

ComputeNumSignBits - Return the number of times the sign bit of the register is replicated into the other bits. We know that at least 1 bit is always equal to the sign bit (itself), but other cases can give us information. For example, immediately after an "ashr X, 2", we know that the top 3 bits are all equal to each other, so we return 3.

'Op' must have a scalar integer type.

Definition at line 156 of file ValueTracking.cpp.

References ComputeNumSignBits(), and safeCxtI().

Referenced by ComputeNumSignBits(), llvm::InstCombiner::ComputeNumSignBits(), llvm::ScalarEvolution::getSignedRange(), SimplifyAShrInst(), llvm::InstCombiner::visitSExt(), and llvm::InstCombiner::visitShl().

OverflowResult llvm::computeOverflowForUnsignedAdd ( Value LHS,
Value RHS,
const DataLayout DL,
AssumptionCache AC,
const Instruction CxtI,
const DominatorTree DT 
)
OverflowResult llvm::computeOverflowForUnsignedMul ( Value LHS,
Value RHS,
const DataLayout DL,
AssumptionCache AC,
const Instruction CxtI,
const DominatorTree DT 
)
void llvm::ComputeSignBit ( Value V,
bool KnownZero,
bool KnownOne,
const DataLayout TD = nullptr,
unsigned  Depth = 0,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr 
)

ComputeSignBit - Determine whether the sign bit is known to be zero or one. Convenience wrapper around computeKnownBits.

Definition at line 115 of file ValueTracking.cpp.

References safeCxtI().

Referenced by computeOverflowForUnsignedAdd(), llvm::InstCombiner::ComputeSignBit(), isKnownNonZero(), SimplifyICmpInst(), and llvm::InstCombiner::simplifyRangeCheck().

void llvm::ComputeUsesVAFloatArgument ( const CallInst I,
MachineModuleInfo MMI 
)

ComputeUsesVAFloatArgument - Determine if any floating-point values are being passed to this variadic function, and set the MachineModuleInfo's usesVAFloatArgument flag if so. This flag is used to emit an undefined reference to _fltused on Windows, which will link in MSVCRT's floating-point support.

Definition at line 455 of file FunctionLoweringInfo.cpp.

References llvm::CallInst::getArgOperand(), llvm::CallInst::getCalledValue(), llvm::Type::getContainedType(), llvm::CallInst::getNumArgOperands(), llvm::Value::getType(), llvm::FunctionType::isVarArg(), po_begin(), po_end(), llvm::MachineModuleInfo::setUsesVAFloatArgument(), and llvm::MachineModuleInfo::usesVAFloatArgument().

Referenced by llvm::FastISel::selectCall().

void llvm::ComputeValueVTs ( const TargetLowering TLI,
Type Ty,
SmallVectorImpl< EVT > &  ValueVTs,
SmallVectorImpl< uint64_t > *  Offsets = nullptr,
uint64_t  StartingOffset = 0 
)
constant_iterator llvm::constant_begin ( const Function *  F)
inline

Definition at line 83 of file ConstantsScanner.h.

constant_iterator llvm::constant_end ( const Function *  F)
inline

Definition at line 87 of file ConstantsScanner.h.

Constant * llvm::ConstantFoldBinaryInstruction ( unsigned  Opcode,
Constant V1,
Constant V2 
)

Definition at line 899 of file ConstantFold.cpp.

References Add, llvm::APFloat::add(), llvm::APIntOps::And(), llvm::APInt::ashr(), assert(), llvm::APFloat::divide(), llvm::IntegerType::get(), llvm::ConstantInt::get(), llvm::ConstantFP::get(), llvm::ConstantVector::get(), llvm::ConstantExpr::get(), llvm::UndefValue::get(), llvm::GlobalValue::getAlignment(), llvm::Constant::getAllOnesValue(), llvm::ConstantExpr::getAnd(), llvm::APInt::getBitWidth(), llvm::ConstantExpr::getCompare(), llvm::Value::getContext(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantInt::getFalse(), llvm::CmpInst::getInversePredicate(), llvm::APInt::getLowBitsSet(), llvm::ConstantExpr::getLShr(), llvm::Constant::getNullValue(), llvm::Type::getPrimitiveSizeInBits(), llvm::Value::getType(), llvm::ConstantExpr::getXor(), llvm::APInt::getZExtValue(), llvm::APInt::isAllOnesValue(), llvm::Instruction::isAssociative(), llvm::Instruction::isCommutative(), llvm::Type::isIntegerTy(), llvm::APInt::isMinSignedValue(), Log2_32(), llvm::APInt::lshr(), llvm::PatternMatch::m_APInt(), llvm::PatternMatch::m_One(), llvm::PatternMatch::m_Undef(), llvm::PatternMatch::m_Zero(), llvm::PatternMatch::match(), llvm::APFloat::mod(), llvm::APFloat::multiply(), llvm::APIntOps::Or(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::APFloat::rmNearestTiesToEven, llvm::APInt::sdiv(), llvm::APInt::shl(), llvm::APInt::srem(), Sub, llvm::APFloat::subtract(), T, llvm::APInt::udiv(), llvm::APInt::urem(), and llvm::APIntOps::Xor().

Referenced by llvm::ConstantExpr::get().

Constant * llvm::ConstantFoldCall ( Function F,
ArrayRef< Constant * >  Operands,
const TargetLibraryInfo TLI = nullptr 
)

ConstantFoldCall - Attempt to constant fold a call to the specified function with the specified arguments, returning null if unsuccessful.

Attempt to constant fold a call to the specified function with the specified arguments, returning null if unsuccessful.

Definition at line 1791 of file ConstantFolding.cpp.

References ConstantFoldScalarCall(), ConstantFoldVectorCall(), llvm::Function::getIntrinsicID(), llvm::Value::getName(), llvm::Function::getReturnType(), llvm::Value::hasName(), Name, and Operands.

Referenced by ConstantFoldInstOperands(), and SimplifyCall().

Constant * llvm::ConstantFoldCastInstruction ( unsigned  opcode,
Constant V,
Type DestTy 
)
Parameters
opcodeThe opcode of the cast
VThe source constant
DestTyThe destination type

Definition at line 512 of file ConstantFold.cpp.

References llvm::APFloat::Bogus, llvm::CallingConv::C, llvm::APFloat::convert(), llvm::APFloat::convertFromAPInt(), llvm::APFloat::convertToInteger(), ExtractConstantBytes(), FoldBitCast(), foldConstantCastPair(), llvm::IntegerType::get(), llvm::ConstantInt::get(), llvm::ConstantFP::get(), llvm::ConstantVector::get(), llvm::ConstantPointerNull::get(), llvm::UndefValue::get(), getBitWidth(), llvm::ConstantExpr::getCast(), llvm::CastInst::getCastOpcode(), llvm::Value::getContext(), llvm::SequentialType::getElementType(), llvm::ConstantExpr::getExtractElement(), llvm::Type::getFltSemantics(), getFoldedAlignOf(), getFoldedOffsetOf(), getFoldedSizeOf(), llvm::ConstantExpr::getMul(), llvm::Constant::getNullValue(), llvm::APInt::getNullValue(), llvm::ConstantExpr::getPointerCast(), llvm::Type::getPrimitiveSizeInBits(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), llvm::APFloat::IEEEdouble, llvm::APFloat::IEEEhalf, llvm::APFloat::IEEEquad, llvm::APFloat::IEEEsingle, llvm::Type::isArrayTy(), llvm::Type::isDoubleTy(), llvm::Type::isFloatTy(), llvm::Type::isFP128Ty(), llvm::Type::isHalfTy(), llvm::Constant::isNullValue(), llvm::ConstantInt::isOne(), llvm::Type::isPPC_FP128Ty(), llvm::Type::isStructTy(), llvm::Type::isVectorTy(), llvm::Type::isX86_FP80Ty(), llvm::Type::isX86_MMXTy(), llvm_unreachable, llvm::APFloat::opInvalidOp, llvm::APFloat::opOverflow, llvm::APFloat::PPCDoubleDouble, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::APFloat::rmNearestTiesToEven, llvm::APFloat::rmTowardZero, and llvm::APFloat::x87DoubleExtended.

Referenced by getFoldedCast().

Constant * llvm::ConstantFoldCompareInstOperands ( unsigned  Predicate,
Constant Ops0,
Constant Ops1,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr 
)

ConstantFoldCompareInstOperands - Attempt to constant fold a compare instruction (icmp/fcmp) with the specified operands. If it fails, it returns a constant expression of the specified operands.

Attempt to constant fold a compare instruction (icmp/fcmp) with the specified operands. If it fails, it returns a constant expression of the specified operands.

Definition at line 1114 of file ConstantFolding.cpp.

References llvm::APIntOps::And(), llvm::CallingConv::C, ConstantFoldInstOperands(), llvm::ConstantExpr::getCompare(), llvm::ConstantExpr::getIntegerCast(), llvm::DataLayout::getIntPtrType(), llvm::Constant::getNullValue(), llvm::Value::getType(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::Constant::isNullValue(), and llvm::APIntOps::Or().

Referenced by ConstantFold(), ConstantFoldConstantExpressionImpl(), ConstantFoldInstruction(), EvaluateExpression(), llvm::InstCombiner::FoldCmpLoadFromIndexedGlobal(), getPredicateResult(), SimplifyFCmpInst(), SimplifyICmpInst(), and SimplifyWithOpReplaced().

Constant * llvm::ConstantFoldCompareInstruction ( unsigned short  predicate,
Constant C1,
Constant C2 
)

Definition at line 1649 of file ConstantFold.cpp.

References llvm::CmpInst::BAD_FCMP_PREDICATE, llvm::CmpInst::BAD_ICMP_PREDICATE, llvm::APFloat::cmpEqual, llvm::APFloat::cmpGreaterThan, llvm::APFloat::cmpLessThan, llvm::APFloat::cmpUnordered, llvm::APFloat::compare(), evaluateFCmpRelation(), evaluateICmpRelation(), llvm::CmpInst::FCMP_FALSE, llvm::CmpInst::FCMP_OEQ, llvm::CmpInst::FCMP_OGE, llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLE, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::FCMP_ONE, llvm::CmpInst::FCMP_ORD, llvm::CmpInst::FCMP_TRUE, llvm::CmpInst::FCMP_UEQ, llvm::CmpInst::FCMP_UGE, llvm::CmpInst::FCMP_UGT, llvm::CmpInst::FCMP_ULE, llvm::CmpInst::FCMP_ULT, llvm::CmpInst::FCMP_UNE, llvm::CmpInst::FCMP_UNO, llvm::IntegerType::get(), llvm::ConstantInt::get(), llvm::VectorType::get(), llvm::ConstantVector::get(), llvm::UndefValue::get(), llvm::Constant::getAllOnesValue(), llvm::ConstantExpr::getBitCast(), llvm::ConstantExpr::getCast(), llvm::ConstantExpr::getCompare(), llvm::Value::getContext(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantInt::getFalse(), llvm::ConstantExpr::getICmp(), llvm::Type::getInt1Ty(), llvm::ConstantExpr::getNot(), llvm::Constant::getNullValue(), llvm::User::getOperand(), llvm::CmpInst::getSwappedPredicate(), llvm::ConstantInt::getTrue(), llvm::ConstantExpr::getTrunc(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), llvm::ConstantExpr::getXor(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, llvm::ICmpInst::isEquality(), llvm::Type::isFloatingPointTy(), llvm::Type::isIntegerTy(), llvm::Constant::isNullValue(), llvm::CmpInst::isSigned(), llvm::CmpInst::isTrueWhenEqual(), llvm::Type::isVectorTy(), llvm_unreachable, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::APInt::sge(), llvm::APInt::sgt(), llvm::APInt::sle(), llvm::APInt::slt(), llvm::APInt::uge(), llvm::APInt::ugt(), llvm::APInt::ule(), llvm::APInt::ult(), and llvm::NVPTX::PTXLdStInstCode::V2.

Referenced by llvm::ConstantExpr::getFCmp(), and llvm::ConstantExpr::getICmp().

Constant * llvm::ConstantFoldConstantExpression ( const ConstantExpr CE,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr 
)

ConstantFoldConstantExpression - Attempt to fold the constant expression using the specified DataLayout. If successful, the constant result is result is returned, if not, null is returned.

Attempt to fold the constant expression using the specified DataLayout. If successful, the constant result is result is returned, if not, null is returned.

Definition at line 999 of file ConstantFolding.cpp.

References ConstantFoldConstantExpressionImpl().

Referenced by AddReachableCodeToWorklist(), CastGEPIndices(), ConstantFoldInstruction(), emitGlobalConstantImpl(), llvm::ScalarEvolution::getOffsetOfExpr(), GetShiftedValue(), llvm::ScalarEvolution::getSizeOfExpr(), llvm::AsmPrinter::lowerConstant(), and SymbolicallyEvaluateGEP().

Constant * llvm::ConstantFoldExtractElementInstruction ( Constant Val,
Constant Idx 
)
Constant * llvm::ConstantFoldExtractValueInstruction ( Constant Agg,
ArrayRef< unsigned Idxs 
)
Constant * llvm::ConstantFoldGetElementPtr ( Constant C,
bool  inBounds,
ArrayRef< Constant * >  Idxs 
)

Definition at line 2205 of file ConstantFold.cpp.

References ConstantFoldGetElementPtrImpl().

Referenced by llvm::ConstantExpr::getGetElementPtr().

Constant * llvm::ConstantFoldGetElementPtr ( Constant C,
bool  inBounds,
ArrayRef< Value * >  Idxs 
)

Definition at line 2211 of file ConstantFold.cpp.

References ConstantFoldGetElementPtrImpl().

Constant * llvm::ConstantFoldInsertElementInstruction ( Constant Val,
Constant Elt,
Constant Idx 
)
Constant * llvm::ConstantFoldInsertValueInstruction ( Constant Agg,
Constant Val,
ArrayRef< unsigned Idxs 
)

ConstantFoldInsertValueInstruction - Attempt to constant fold an insertvalue instruction with the specified operands and indices. The constant result is returned if successful; if not, null is returned.

Definition at line 865 of file ConstantFold.cpp.

References llvm::CallingConv::C, llvm::ArrayRef< T >::empty(), llvm::ConstantArray::get(), llvm::ConstantStruct::get(), llvm::ConstantVector::get(), llvm::Constant::getAggregateElement(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::ArrayRef< T >::slice(), and llvm::AArch64DB::ST.

Referenced by llvm::ConstantExpr::getInsertValue(), and SimplifyInsertValueInst().

Constant * llvm::ConstantFoldInstOperands ( unsigned  Opcode,
Type DestTy,
ArrayRef< Constant * >  Ops,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr 
)

ConstantFoldInstOperands - Attempt to constant fold an instruction with the specified operands. If successful, the constant result is returned, if not, null is returned. Note that this function can fail when attempting to fold instructions like loads and stores, which have no constant expression form.

Attempt to constant fold an instruction with the specified opcode and operands. If successful, the constant result is returned, if not, null is returned. Note that this function can fail when attempting to fold instructions like loads and stores, which have no constant expression form.

TODO: This function neither utilizes nor preserves nsw/nuw/inbounds/etc information, due to only being passed an opcode and operands. Constant folding using this function strips this information.

Definition at line 1016 of file ConstantFolding.cpp.

References llvm::ArrayRef< T >::back(), llvm::CallingConv::C, Call, canConstantFoldCallTo(), CastGEPIndices(), ConstantFoldCall(), ExtractElement(), F(), FoldBitCast(), llvm::ConstantInt::get(), llvm::ConstantExpr::get(), llvm::ConstantExpr::getAnd(), llvm::ConstantExpr::getBitCast(), llvm::ConstantExpr::getCast(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantExpr::getGetElementPtr(), llvm::ConstantExpr::getInsertElement(), llvm::ConstantExpr::getIntegerCast(), llvm::APInt::getLowBitsSet(), llvm::Type::getPointerAddressSpace(), llvm::DataLayout::getPointerTypeSizeInBits(), llvm::Type::getScalarSizeInBits(), llvm::ConstantExpr::getSelect(), llvm::ConstantExpr::getShuffleVector(), llvm::Value::getType(), llvm::Instruction::isBinaryOp(), llvm_unreachable, llvm::MCID::Select, llvm::ArrayRef< T >::size(), llvm::ArrayRef< T >::slice(), SymbolicallyEvaluateBinop(), and SymbolicallyEvaluateGEP().

Referenced by CanShareConstantPoolEntry(), ConstantFold(), ConstantFoldCompareInstOperands(), ConstantFoldConstantExpressionImpl(), ConstantFoldInstruction(), EvaluateExpression(), SimplifyAddInst(), SimplifyAndInst(), SimplifyBinOp(), SimplifyDiv(), SimplifyFAddInst(), SimplifyFMulInst(), SimplifyFSubInst(), SimplifyMulInst(), SimplifyOrInst(), SimplifyRem(), SimplifyShift(), SimplifySubInst(), SimplifyTruncInst(), SimplifyWithOpReplaced(), and SimplifyXorInst().

Constant * llvm::ConstantFoldInstruction ( Instruction I,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr 
)

ConstantFoldInstruction - Try to constant fold the specified instruction. If successful, the constant result is returned, if not, null is returned. Note that this fails if not all of the operands are constant. Otherwise, this function can only fail when attempting to fold instructions like loads and stores, which have no constant expression form.

Try to constant fold the specified instruction. If successful, the constant result is returned, if not, null is returned. Note that this fails if not all of the operands are constant. Otherwise, this function can only fail when attempting to fold instructions like loads and stores, which have no constant expression form.

Definition at line 901 of file ConstantFolding.cpp.

References llvm::CallingConv::C, ConstantFoldCompareInstOperands(), ConstantFoldConstantExpression(), ConstantFoldInstOperands(), ConstantFoldLoadInst(), dyn_cast(), llvm::UndefValue::get(), llvm::ConstantExpr::getExtractValue(), llvm::ConstantExpr::getInsertValue(), llvm::Instruction::getOpcode(), llvm::Value::getType(), LI, llvm::User::op_begin(), llvm::User::op_end(), and llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back().

Referenced by AddReachableCodeToWorklist(), CleanupConstantGlobalUsers(), ConstantPropUsersOf(), llvm::InstCombiner::DoOneIteration(), and SimplifyInstruction().

Constant * llvm::ConstantFoldLoadFromConstPtr ( Constant C,
const DataLayout TD = nullptr 
)
Constant * llvm::ConstantFoldLoadThroughGEPConstantExpr ( Constant C,
ConstantExpr CE 
)

ConstantFoldLoadThroughGEPConstantExpr - Given a constant and a getelementptr constantexpr, return the constant value being addressed by the constant expression, or null if something is funny and we can't decide.

Given a constant and a getelementptr constantexpr, return the constant value being addressed by the constant expression, or null if something is funny and we can't decide.

Definition at line 1203 of file ConstantFolding.cpp.

References llvm::CallingConv::C, llvm::Constant::getAggregateElement(), llvm::User::getNumOperands(), and llvm::User::getOperand().

Referenced by CleanupConstantGlobalUsers(), ConstantFoldLoadFromConstPtr(), and isSimpleEnoughPointerToCommit().

Constant * llvm::ConstantFoldLoadThroughGEPIndices ( Constant C,
ArrayRef< Constant * >  Indices 
)

ConstantFoldLoadThroughGEPIndices - Given a constant and getelementptr indices (with an implied zero pointer index that is not in the list), return the constant value being addressed by a virtual load, or null if something is funny and we can't decide.

Given a constant and getelementptr indices (with an implied zero pointer index that is not in the list), return the constant value being addressed by a virtual load, or null if something is funny and we can't decide.

Definition at line 1221 of file ConstantFolding.cpp.

References llvm::CallingConv::C, llvm::Constant::getAggregateElement(), and llvm::ArrayRef< T >::size().

Constant * llvm::ConstantFoldSelectInstruction ( Constant Cond,
Constant V1,
Constant V2 
)
Constant * llvm::ConstantFoldShuffleVectorInstruction ( Constant V1,
Constant V2,
Constant Mask 
)
bool llvm::ConstantFoldTerminator ( BasicBlock BB,
bool  DeleteDeadConditions = false,
const TargetLibraryInfo TLI = nullptr 
)

ConstantFoldTerminator - If a terminator instruction is predicated on a constant value, convert it into an unconditional branch to the constant destination. This is a nontrivial operation because the successors of this basic block must have their PHI nodes updated. Also calls RecursivelyDeleteTriviallyDeadInstructions() on any branch/switch conditions and indirectbr addresses this might make dead if DeleteDeadConditions is true.

Definition at line 61 of file Local.cpp.

References llvm::dwarf::syntax::Address, assert(), llvm::SmallVectorTemplateCommon< T >::back(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateBr(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateCondBr(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateICmpEQ(), dyn_cast(), llvm::Instruction::eraseFromParent(), llvm::SwitchInst::CaseIteratorT< SwitchInstTy, ConstantIntTy, BasicBlockTy >::getCaseSuccessor(), llvm::SwitchInst::CaseIteratorT< SwitchInstTy, ConstantIntTy, BasicBlockTy >::getCaseValue(), llvm::BasicBlock::getContext(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::BasicBlock::getTerminator(), llvm::ConstantInt::getValue(), llvm::APInt::getZExtValue(), llvm::LLVMContext::MD_prof, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::pop_back(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), RecursivelyDeleteTriviallyDeadInstructions(), llvm::BasicBlock::removePredecessor(), llvm::Instruction::setMetadata(), SI, and std::swap().

Referenced by CloneAndPruneFunctionInto(), and markAliveBlocks().

unsigned llvm::convertAddSubFlagsOpcode ( unsigned  OldOpc)

Map pseudo instructions that imply an 'S' bit onto real opcodes. Whether the instruction is encoded with an 'S' bit is determined by the optional CPSR def operand.

Definition at line 1937 of file ARMBaseInstrInfo.cpp.

References AddSubFlagsOpcodeMap, array_lengthof(), and AddSubFlagsOpcodePair::MachineOpc.

Referenced by llvm::ARMTargetLowering::AdjustInstrPostInstrSelection(), and llvm::ARMAsmPrinter::EmitInstruction().

bool llvm::ConvertCodePointToUTF8 ( unsigned  Source,
char *&  ResultPtr 
)
template<class TypeTy , class CompareTy >
int llvm::ConvertCostTableLookup ( const TypeConversionCostTblEntry< TypeTy > *  Tbl,
unsigned  len,
int  ISD,
CompareTy  Dst,
CompareTy  Src 
)

Find in type conversion cost table, TypeTy must be comparable to CompareTy by ==

Definition at line 59 of file CostTable.h.

Referenced by ConvertCostTableLookup().

template<class TypeTy , class CompareTy , unsigned N>
int llvm::ConvertCostTableLookup ( const TypeConversionCostTblEntry< TypeTy >(&)  Tbl[N],
int  ISD,
CompareTy  Dst,
CompareTy  Src 
)

Find in type conversion cost table, TypeTy must be comparable to CompareTy by ==

Definition at line 73 of file CostTable.h.

References ConvertCostTableLookup().

bool llvm::ConvertDebugDeclareToDebugValue ( DbgDeclareInst DDI,
StoreInst SI,
DIBuilder Builder 
)

===---------------------------------------------------------------——===// Dbg Intrinsic utilitiesInserts a llvm.dbg.value intrinsic before a store to an alloca'd value that has an associated llvm.dbg.decl intrinsic.

Inserts a llvm.dbg.value intrinsic before a store to an alloca'd value that has an associated llvm.dbg.decl intrinsic.

Definition at line 996 of file Local.cpp.

References assert(), dyn_cast(), llvm::Instruction::getDebugLoc(), llvm::DbgDeclareInst::getExpression(), llvm::User::getOperand(), llvm::DbgDeclareInst::getVariable(), llvm::DIBuilder::insertDbgValueIntrinsic(), LdStHasDebugValue(), llvm::Instruction::setDebugLoc(), and SI.

Referenced by LowerDbgDeclare(), promoteSingleBlockAlloca(), and rewriteSingleStoreAlloca().

bool llvm::ConvertDebugDeclareToDebugValue ( DbgDeclareInst DDI,
LoadInst LI,
DIBuilder Builder 
)

Inserts a llvm.dbg.value intrinsic before a load of an alloca'd value that has an associated llvm.dbg.decl intrinsic.

Definition at line 1027 of file Local.cpp.

References assert(), llvm::Instruction::getDebugLoc(), llvm::DbgDeclareInst::getExpression(), llvm::User::getOperand(), llvm::DbgDeclareInst::getVariable(), llvm::DIBuilder::insertDbgValueIntrinsic(), LdStHasDebugValue(), LI, and llvm::Instruction::setDebugLoc().

bool llvm::convertUTF16ToUTF8String ( ArrayRef< char >  SrcBytes,
std::string &  Out 
)
bool llvm::ConvertUTF8toWide ( unsigned  WideCharWidth,
llvm::StringRef  Source,
char *&  ResultPtr,
const UTF8 *&  ErrorPtr 
)
template<class TypeTy , class CompareTy >
int llvm::CostTableLookup ( const CostTblEntry< TypeTy > *  Tbl,
unsigned  len,
int  ISD,
CompareTy  Ty 
)

Find in cost table, TypeTy must be comparable to CompareTy by ==.

Definition at line 30 of file CostTable.h.

Referenced by CostTableLookup().

template<class TypeTy , class CompareTy , unsigned N>
int llvm::CostTableLookup ( const CostTblEntry< TypeTy >(&)  Tbl[N],
int  ISD,
CompareTy  Ty 
)

Find in cost table, TypeTy must be comparable to CompareTy by ==.

Definition at line 42 of file CostTable.h.

References CostTableLookup().

unsigned llvm::CountLeadingOnes_32 ( uint32_t  Value)
inline

CountLeadingOnes_32 - this function performs the operation of counting the number of ones from the most significant bit to the first zero bit. Ex. CountLeadingOnes_32(0xFF0FFF00) == 8. Returns 32 if the word is all ones.

Definition at line 394 of file MathExtras.h.

References countLeadingZeros().

Referenced by llvm::ARM::isBitFieldInvertedMask().

unsigned llvm::CountLeadingOnes_64 ( uint64_t  Value)
inline

CountLeadingOnes_64 - This function performs the operation of counting the number of ones from the most significant bit to the first zero bit (64 bit edition.) Returns 64 if the word is all ones.

Definition at line 402 of file MathExtras.h.

References countLeadingZeros().

Referenced by llvm::APInt::countLeadingOnes(), isSeveralBitsExtractOpFromShr(), isStartChunk(), and llvm::AArch64_AM::processLogicalImmediate().

template<typename T >
std::enable_if<std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed, std::size_t>::type llvm::countLeadingZeros ( T  Val,
ZeroBehavior  ZB = ZB_Width 
)
template<typename T >
std::enable_if<std::numeric_limits<T>::is_integer && std::numeric_limits<T>::is_signed, std::size_t>::type llvm::countLeadingZeros ( T  Val,
ZeroBehavior  ZB = ZB_Width 
)
static uint8_t llvm::CountOfUnwindCodes ( std::vector< WinEH::Instruction > &  Insns)
static
unsigned llvm::CountPopulation_32 ( uint32_t  Value)
inline

CountPopulation_32 - this function counts the number of set bits in a value. Ex. CountPopulation(0xF000F000) = 8 Returns 0 if the word is zero.

Definition at line 425 of file MathExtras.h.

Referenced by llvm::BitVector::count(), llvm::SparseBitVectorElement< ElementSize >::count(), llvm::SmallBitVector::count(), and ExpandPowI().

unsigned llvm::CountPopulation_64 ( uint64_t  Value)
inline
unsigned llvm::CountTrailingOnes_32 ( uint32_t  Value)
inline

CountTrailingOnes_32 - this function performs the operation of counting the number of ones from the least significant bit to the first zero bit. Ex. CountTrailingOnes_32(0x00FF00FF) == 8. Returns 32 if the word is all ones.

Definition at line 410 of file MathExtras.h.

References countTrailingZeros().

Referenced by isBitfieldExtractOpFromAnd(), and llvm::ARM::isBitFieldInvertedMask().

unsigned llvm::CountTrailingOnes_64 ( uint64_t  Value)
inline

CountTrailingOnes_64 - This function performs the operation of counting the number of ones from the least significant bit to the first zero bit (64 bit edition.) Returns 64 if the word is all ones.

Definition at line 418 of file MathExtras.h.

References countTrailingZeros().

Referenced by CheckForMaskedLoad(), llvm::APInt::countTrailingOnes(), FoldMaskAndShiftToScale(), isBitfieldExtractOpFromAnd(), isBitfieldPositioningOp(), isEndChunk(), llvm::AArch64_AM::processLogicalImmediate(), and llvm::SelectionDAGBuilder::visitBitTestCase().

template<typename T >
std::enable_if<std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed, std::size_t>::type llvm::countTrailingZeros ( T  Val,
ZeroBehavior  ZB = ZB_Width 
)
template<typename T >
std::enable_if<std::numeric_limits<T>::is_integer && std::numeric_limits<T>::is_signed, std::size_t>::type llvm::countTrailingZeros ( T  Val,
ZeroBehavior  ZB = ZB_Width 
)
FunctionPass * llvm::createA15SDOptimizerPass ( )

Definition at line 710 of file A15SDOptimizer.cpp.

aa Exhaustive Alias Analysis Precision true FunctionPass * llvm::createAAEvalPass ( )

Definition at line 88 of file AliasAnalysisEvaluator.cpp.

FunctionPass * llvm::createAArch64A53Fix835769 ( )

Definition at line 238 of file AArch64A53Fix835769.cpp.

FunctionPass * llvm::createAArch64A57FPLoadBalancing ( )

Definition at line 704 of file AArch64A57FPLoadBalancing.cpp.

aarch64 type AArch64 Type Promotion false FunctionPass * llvm::createAArch64AddressTypePromotionPass ( )

Definition at line 150 of file AArch64AddressTypePromotion.cpp.

FunctionPass * llvm::createAArch64AdvSIMDScalar ( )

Definition at line 393 of file AArch64AdvSIMDScalarPass.cpp.

MCAsmBackend * llvm::createAArch64beAsmBackend ( const Target T,
const MCRegisterInfo MRI,
StringRef  TT,
StringRef  CPU 
)
FunctionPass * llvm::createAArch64BranchRelaxation ( )

createAArch64BranchRelaxation - returns an instance of the constpool island pass.

Definition at line 511 of file AArch64BranchRelaxation.cpp.

FunctionPass * llvm::createAArch64CleanupLocalDynamicTLSPass ( )

Definition at line 145 of file AArch64CleanupLocalDynamicTLSPass.cpp.

FunctionPass * llvm::createAArch64CollectLOHPass ( )

createAArch64CollectLOHPass - returns an instance of the Statistic for linker optimization pass.

Definition at line 1099 of file AArch64CollectLOH.cpp.

aarch64 AArch64 CCMP false FunctionPass * llvm::createAArch64ConditionalCompares ( )

Definition at line 768 of file AArch64ConditionalCompares.cpp.

aarch64 AArch64 CondOpt false FunctionPass * llvm::createAArch64ConditionOptimizerPass ( )

Definition at line 123 of file AArch64ConditionOptimizer.cpp.

FunctionPass * llvm::createAArch64DeadRegisterDefinitions ( )

Definition at line 133 of file AArch64DeadRegisterDefinitionsPass.cpp.

MCObjectWriter * llvm::createAArch64ELFObjectWriter ( raw_ostream OS,
uint8_t  OSABI,
bool  IsLittleEndian 
)

Definition at line 251 of file AArch64ELFObjectWriter.cpp.

References createELFObjectWriter().

MCELFStreamer * llvm::createAArch64ELFStreamer ( MCContext Context,
MCAsmBackend TAB,
raw_ostream OS,
MCCodeEmitter Emitter,
bool  RelaxAll 
)

Definition at line 217 of file AArch64ELFStreamer.cpp.

Referenced by createMCStreamer().

FunctionPass * llvm::createAArch64ExpandPseudoPass ( )

Returns an instance of the pseudo instruction expansion pass.

Definition at line 735 of file AArch64ExpandPseudoInsts.cpp.

FunctionPass * llvm::createAArch64ISelDag ( AArch64TargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

createAArch64ISelDag - This pass converts a legalized DAG into a AArch64-specific DAG, ready for instruction scheduling.

Definition at line 3108 of file AArch64ISelDAGToDAG.cpp.

MCAsmBackend * llvm::createAArch64leAsmBackend ( const Target T,
const MCRegisterInfo MRI,
StringRef  TT,
StringRef  CPU 
)
FunctionPass * llvm::createAArch64LoadStoreOptimizationPass ( )

createARMLoadStoreOptimizationPass - returns an instance of the load / store optimization pass.

Definition at line 951 of file AArch64LoadStoreOptimizer.cpp.

MCObjectWriter * llvm::createAArch64MachObjectWriter ( raw_ostream OS,
uint32_t  CPUType,
uint32_t  CPUSubtype 
)

Definition at line 391 of file AArch64MachObjectWriter.cpp.

References createMachObjectWriter().

MCStreamer * llvm::createAArch64MCAsmStreamer ( MCContext Ctx,
formatted_raw_ostream OS,
bool  isVerboseAsm,
bool  useDwarfDirectory,
MCInstPrinter InstPrint,
MCCodeEmitter CE,
MCAsmBackend TAB,
bool  ShowInst 
)

Definition at line 207 of file AArch64ELFStreamer.cpp.

References createAsmStreamer().

Referenced by LLVMInitializeAArch64TargetMC().

MCCodeEmitter * llvm::createAArch64MCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
const MCSubtargetInfo STI,
MCContext Ctx 
)

Definition at line 206 of file AArch64MCCodeEmitter.cpp.

Referenced by LLVMInitializeAArch64TargetMC().

aarch64 promote AArch64 Promote Constant false ModulePass * llvm::createAArch64PromoteConstantPass ( )

Definition at line 216 of file AArch64PromoteConstant.cpp.

FunctionPass * llvm::createAArch64StorePairSuppressPass ( )

Definition at line 63 of file AArch64StorePairSuppress.cpp.

ImmutablePass* llvm::createAArch64TargetTransformInfoPass ( const AArch64TargetMachine *  TM)

Creates an ARM-specific Target Transformation Info pass.

Referenced by llvm::AArch64TargetMachine::addAnalysisPasses().

FunctionPass * llvm::createAddDiscriminatorsPass ( )

Definition at line 96 of file AddDiscriminators.cpp.

AddressSanitizer false FunctionPass * llvm::createAddressSanitizerFunctionPass ( )

Definition at line 689 of file AddressSanitizer.cpp.

ModulePass* llvm::createAddressSanitizerModulePass ( )
FunctionPass * llvm::createAggressiveDCEPass ( )
ModulePass* llvm::createAliasAnalysisCounterPass ( )
Pass* llvm::createAliasDebugger ( )
false FunctionPass * llvm::createAlignmentFromAssumptionsPass ( )
FunctionPass * llvm::createAllocaHoisting ( )

Definition at line 44 of file NVPTXAllocaHoisting.cpp.

always Inliner for always_inline false Pass * llvm::createAlwaysInlinerPass ( )

createAlwaysInlinerPass - Return a new pass object that inlines only functions that are marked as "always_inline".

Definition at line 77 of file InlineAlways.cpp.

Referenced by LLVMAddAlwaysInlinerPass().

Pass * llvm::createAlwaysInlinerPass ( bool  InsertLifetime)

Definition at line 79 of file InlineAlways.cpp.

ModulePass * llvm::createAMDGPUAlwaysInlinePass ( )

Definition at line 64 of file AMDGPUAlwaysInlinePass.cpp.

MCAsmBackend * llvm::createAMDGPUAsmBackend ( const Target T,
const MCRegisterInfo MRI,
StringRef  TT,
StringRef  CPU 
)

Definition at line 141 of file AMDGPUAsmBackend.cpp.

Referenced by LLVMInitializeR600TargetMC().

AMDGPU CFG false FunctionPass * llvm::createAMDGPUCFGStructurizerPass ( )

Definition at line 1910 of file AMDILCFGStructurizer.cpp.

MCObjectWriter * llvm::createAMDGPUELFObjectWriter ( raw_ostream OS)

Definition at line 36 of file AMDGPUELFObjectWriter.cpp.

References createELFObjectWriter().

FunctionPass * llvm::createAMDGPUISelDag ( TargetMachine tm)

This pass converts a legalized DAG into a AMDGPU-specific.

Definition at line 130 of file AMDGPUISelDAGToDAG.cpp.

FunctionPass * llvm::createAMDGPUPromoteAlloca ( const AMDGPUSubtarget ST)

Definition at line 405 of file AMDGPUPromoteAlloca.cpp.

Pass* llvm::createAMDGPUStructurizeCFGPass ( )
ImmutablePass* llvm::createAMDGPUTargetTransformInfoPass ( const AMDGPUTargetMachine *  TM)

Creates an AMDGPU-specific Target Transformation Info pass.

Referenced by llvm::AMDGPUTargetMachine::addAnalysisPasses().

Promote by reference arguments to false Pass * llvm::createArgumentPromotionPass ( unsigned  maxElements = 3)

createArgumentPromotionPass - This pass promotes "by reference" arguments to be passed by value if the number of elements passed is smaller or equal to maxElements (maxElements == 0 means always promote).

Definition at line 105 of file ArgumentPromotion.cpp.

Referenced by LLVMAddArgumentPromotionPass(), and llvm::PassManagerBuilder::populateModulePassManager().

MCAsmBackend * llvm::createARMAsmBackend ( const Target T,
const MCRegisterInfo MRI,
StringRef  TT,
StringRef  CPU,
bool  IsLittleEndian 
)
MCAsmBackend * llvm::createARMBEAsmBackend ( const Target T,
const MCRegisterInfo MRI,
StringRef  TT,
StringRef  CPU 
)

Definition at line 784 of file ARMAsmBackend.cpp.

References createARMAsmBackend().

Referenced by LLVMInitializeARMTargetMC().

MCCodeEmitter * llvm::createARMBEMCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
const MCSubtargetInfo STI,
MCContext Ctx 
)

Definition at line 449 of file ARMMCCodeEmitter.cpp.

Referenced by LLVMInitializeARMTargetMC().

FunctionPass * llvm::createARMConstantIslandPass ( )

createARMConstantIslandPass - returns an instance of the constpool island pass.

Definition at line 374 of file ARMConstantIslandPass.cpp.

MCObjectWriter * llvm::createARMELFObjectWriter ( raw_ostream OS,
uint8_t  OSABI,
bool  IsLittleEndian 
)

createARMELFObjectWriter - Construct an ELF Mach-O object writer.

Definition at line 250 of file ARMELFObjectWriter.cpp.

References createELFObjectWriter().

MCELFStreamer * llvm::createARMELFStreamer ( MCContext Context,
MCAsmBackend TAB,
raw_ostream OS,
MCCodeEmitter Emitter,
bool  RelaxAll,
bool  IsThumb 
)

Definition at line 1366 of file ARMELFStreamer.cpp.

References llvm::ELF::EF_ARM_EABI_VER5.

Referenced by createMCStreamer().

FunctionPass * llvm::createARMExpandPseudoPass ( )

createARMExpandPseudoPass - returns an instance of the pseudo instruction expansion pass.

Definition at line 1366 of file ARMExpandPseudoInsts.cpp.

FunctionPass * llvm::createARMGlobalBaseRegPass ( )

Definition at line 206 of file ARMInstrInfo.cpp.

FunctionPass* llvm::createARMGlobalMergePass ( const TargetLowering *  tli)
FunctionPass * llvm::createARMISelDag ( ARMBaseTargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

createARMISelDag - This pass converts a legalized DAG into a ARM-specific DAG, ready for instruction scheduling.

Definition at line 3467 of file ARMISelDAGToDAG.cpp.

MCAsmBackend * llvm::createARMLEAsmBackend ( const Target T,
const MCRegisterInfo MRI,
StringRef  TT,
StringRef  CPU 
)

Definition at line 778 of file ARMAsmBackend.cpp.

References createARMAsmBackend().

Referenced by LLVMInitializeARMTargetMC().

MCCodeEmitter * llvm::createARMLEMCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
const MCSubtargetInfo STI,
MCContext Ctx 
)

Definition at line 442 of file ARMMCCodeEmitter.cpp.

Referenced by LLVMInitializeARMTargetMC().

FunctionPass * llvm::createARMLoadStoreOptimizationPass ( bool  PreAlloc = false)

createARMLoadStoreOptimizationPass - returns an instance of the load / store optimization pass.

Definition at line 2284 of file ARMLoadStoreOptimizer.cpp.

MCObjectWriter * llvm::createARMMachObjectWriter ( raw_ostream OS,
bool  Is64Bit,
uint32_t  CPUType,
uint32_t  CPUSubtype 
)

createARMMachObjectWriter - Construct an ARM Mach-O object writer.

Definition at line 485 of file ARMMachObjectWriter.cpp.

References createMachObjectWriter().

MCRelocationInfo * llvm::createARMMachORelocationInfo ( MCContext Ctx)

createARMMachORelocationInfo - Construct ARM Mach-O relocation info.

createARMMachORelocationInfo - Construct an ARM Mach-O RelocationInfo.

Definition at line 41 of file ARMMachORelocationInfo.cpp.

Referenced by createARMMCRelocationInfo().

MCStreamer * llvm::createARMNullStreamer ( MCContext Ctx)

Definition at line 1360 of file ARMELFStreamer.cpp.

References createNullStreamer().

Referenced by LLVMInitializeARMTargetMC().

FunctionPass * llvm::createARMOptimizeBarriersPass ( )

createARMOptimizeBarriersPass - Returns an instance of the remove double barriers pass.

Definition at line 99 of file ARMOptimizeBarriersPass.cpp.

ImmutablePass* llvm::createARMTargetTransformInfoPass ( const ARMBaseTargetMachine *  TM)

Creates an ARM-specific Target Transformation Info pass.

Referenced by llvm::ARMBaseTargetMachine::addAnalysisPasses().

MCObjectWriter * llvm::createARMWinCOFFObjectWriter ( raw_ostream OS,
bool  Is64Bit 
)

createARMWinCOFFObjectWriter - Construct an ARM PE/COFF object writer.

Definition at line 77 of file ARMWinCOFFObjectWriter.cpp.

References createWinCOFFObjectWriter().

MCStreamer * llvm::createARMWinCOFFStreamer ( MCContext Context,
MCAsmBackend MAB,
MCCodeEmitter Emitter,
raw_ostream OS 
)

createARMWinCOFFStreamer - Construct a PE/COFF machine code streamer which will generate a PE/COFF object file.

Definition at line 41 of file ARMWinCOFFStreamer.cpp.

Referenced by createMCStreamer().

MCStreamer * llvm::createAsmStreamer ( MCContext Ctx,
formatted_raw_ostream OS,
bool  isVerboseAsm,
bool  useDwarfDirectory,
MCInstPrinter InstPrint,
MCCodeEmitter CE,
MCAsmBackend TAB,
bool  ShowInst 
)

createAsmStreamer - Create a machine code streamer which will print out assembly for the native target, suitable for compiling with a native assembler.

Parameters
InstPrint- If given, the instruction printer to use. If not given the MCInst representation will be printed. This method takes ownership of InstPrint.
CE- If given, a code emitter to use to show the instruction encoding inline with the assembly. This method takes ownership of CE.
TAB- If given, a target asm backend to use to show the fixup information in conjunction with encoding information. This method takes ownership of TAB.
ShowInst- Whether to show the MCInst representation inline with the assembly.

Definition at line 1316 of file MCAsmStreamer.cpp.

Referenced by createAArch64MCAsmStreamer(), llvm::Target::createAsmStreamer(), createMCAsmStreamer(), createMCAsmStreamer(), and createXCoreMCAsmStreamer().

FunctionPass* llvm::createAtomicExpandPass ( const TargetMachine *  TM)
ModulePass * llvm::createBarrierNoopPass ( )

createBarrierNoopPass - This pass is purely a module pass barrier in a pass manager.

Definition at line 43 of file BarrierNoopPass.cpp.

Referenced by llvm::PassManagerBuilder::populateModulePassManager().

Basic Alias false ImmutablePass * llvm::createBasicAliasAnalysisPass ( )
FunctionPass * llvm::createBasicRegisterAllocator ( )

BasicRegisterAllocation Pass - This pass implements a degenerate global register allocator using the basic regalloc framework.

Definition at line 294 of file RegAllocBasic.cpp.

ImmutablePass* llvm::createBasicTargetTransformInfoPass ( const TargetMachine *  TM)
BasicBlockPass * llvm::createBBVectorizePass ( const VectorizeConfig C = VectorizeConfig())
ModulePass * llvm::createBitcodeWriterPass ( raw_ostream Str)

Create and return a pass that writes the module to the specified ostream. Note that this pass is designed for use with the legacy pass manager.

Definition at line 45 of file BitcodeWriterPass.cpp.

ModulePass* llvm::createBlockExtractorPass ( )

createBlockExtractorPass - This pass extracts all blocks (except those specified in the argument list) from the functions in the module.

FunctionPass * llvm::createBoundsCheckingPass ( )

Definition at line 209 of file BoundsChecking.cpp.

FunctionPass* llvm::createBreakCriticalEdgesPass ( )
llvm::ScheduleDAGSDNodes * llvm::createBURRListDAGScheduler ( SelectionDAGISel IS,
CodeGenOpt::Level  OptLevel 
)

createBURRListDAGScheduler - This creates a bottom up register usage reduction list scheduler.

Definition at line 2984 of file ScheduleDAGRRList.cpp.

References llvm::TargetSubtargetInfo::getInstrInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::SelectionDAGISel::MF, and TII.

Referenced by createDefaultScheduler().

ModulePass * llvm::createCallGraphPrinterPass ( )

Definition at line 90 of file CallPrinter.cpp.

ModulePass* llvm::createCallGraphViewerPass ( )
FunctionPass * llvm::createCFGOnlyPrinterPass ( )

Definition at line 162 of file CFGPrinter.cpp.

FunctionPass * llvm::createCFGPrinterPass ( )

Definition at line 158 of file CFGPrinter.cpp.

Simplify the false FunctionPass * llvm::createCFGSimplificationPass ( int  Threshold = -1)
ImmutablePass* llvm::createCFLAliasAnalysisPass ( )
template<typename FunctionPassT >
CGSCCToFunctionPassAdaptor<FunctionPassT> llvm::createCGSCCToFunctionPassAdaptor ( FunctionPassT  Pass)

A function to deduce a function pass type and wrap it in the templated adaptor.

Definition at line 486 of file CGSCCPassManager.h.

FunctionPass * llvm::createCleanupLocalDynamicTLSPass ( )

createCleanupLocalDynamicTLSPass() - This pass combines multiple accesses to local-dynamic TLS variables so that the TLS base address for the module is only fetched once per execution path through the function.

Definition at line 5922 of file X86InstrInfo.cpp.

FunctionPass* llvm::createCodeGenPreparePass ( const TargetMachine *  TM = nullptr)

createCodeGenPreparePass - Transform the code to expose more pattern matching during instruction selection.

Referenced by llvm::TargetPassConfig::addCodeGenPrepare().

MCAsmParserExtension * llvm::createCOFFAsmParser ( )

Definition at line 776 of file COFFAsmParser.cpp.

Constant false FunctionPass * llvm::createConstantHoistingPass ( )

Definition at line 183 of file ConstantHoisting.cpp.

Referenced by llvm::TargetPassConfig::addIRPasses().

ModulePass* llvm::createConstantMergePass ( )

createConstantMergePass - This function returns a new pass that merges duplicate global constants together into a single constant that is shared. This is useful because some passes (ie TraceValues) insert a lot of string constants into the program, regardless of whether or not they duplicate an existing string.

Referenced by LLVMAddConstantMergePass(), and llvm::PassManagerBuilder::populateModulePassManager().

Simple constant false FunctionPass * llvm::createConstantPropagationPass ( )

Definition at line 60 of file ConstantProp.cpp.

Referenced by LLVMAddConstantPropagationPass().

correlated Value false Pass * llvm::createCorrelatedValuePropagationPass ( )
FunctionPass * llvm::createCostModelAnalysisPass ( )

Definition at line 74 of file CostModel.cpp.

llvm::ScheduleDAGSDNodes * llvm::createDAGLinearizer ( SelectionDAGISel IS,
CodeGenOpt::Level  OptLevel 
)

createDAGLinearizer - This creates a "no-scheduling" scheduler which linearize the DAG using topological order.

Definition at line 805 of file ScheduleDAGFast.cpp.

References llvm::SelectionDAGISel::MF.

MCAsmParserExtension * llvm::createDarwinAsmParser ( )

Definition at line 913 of file DarwinAsmParser.cpp.

ModulePass* llvm::createDataFlowSanitizerPass ( StringRef  ABIListFile = StringRef(),
void *(*)()  getArgTLS = nullptr,
void *(*)()  getRetValTLS = nullptr 
)
ModulePass* llvm::createDeadArgEliminationPass ( )

createDeadArgEliminationPass - This pass removes arguments from functions which are not used by the body of the function.

Referenced by LLVMAddDeadArgEliminationPass(), and llvm::PassManagerBuilder::populateModulePassManager().

ModulePass * llvm::createDeadArgHackingPass ( )

DeadArgHacking pass - Same as DAE, but delete arguments of external functions as well. This is definitely not safe, and should only be used by bugpoint.

Definition at line 189 of file DeadArgumentElimination.cpp.

FunctionPass * llvm::createDeadCodeEliminationPass ( )

Definition at line 137 of file DCE.cpp.

Pass* llvm::createDeadInstEliminationPass ( )
FunctionPass * llvm::createDeadStoreEliminationPass ( )
ModulePass * llvm::createDebugInfoVerifierPass ( bool  FatalErrors = true)

Create a debug-info verifier pass.

Check a module for validity of debug info. This is essentially a pass wrapped around the debug-info parts of verifyModule(). When the pass detects a verification error it is always printed to stderr, and by default they are fatal. You can override that by passing false to FatalErrors.

Note that this creates a pass suitable for the legacy pass manager. It has nothing to do with VerifierPass.

Definition at line 2949 of file Verifier.cpp.

Referenced by llvm::TargetPassConfig::addIRPasses(), llvm::TargetPassConfig::addISelPrepare(), and llvm::PassManagerBuilder::populateLTOPassManager().

FunctionPass * llvm::createDefaultPBQPRegisterAllocator ( )

PBQPRegisterAllocation Pass - This pass implements the Partitioned Boolean Quadratic Prograaming (PBQP) based register allocator.

Definition at line 726 of file RegAllocPBQP.cpp.

References createPBQPRegisterAllocator().

ScheduleDAGSDNodes * llvm::createDefaultScheduler ( SelectionDAGISel IS,
CodeGenOpt::Level  OptLevel 
)
FunctionPass* llvm::createDelinearizationPass ( )
FunctionPass * llvm::createDemoteRegisterToMemoryPass ( )

Definition at line 131 of file Reg2Mem.cpp.

Referenced by LLVMAddDemoteMemoryToRegisterPass().

FunctionPass * llvm::createDependenceAnalysisPass ( )

createDependenceAnalysisPass - This creates an instance of the DependenceAnalysis pass.

Definition at line 126 of file DependenceAnalysis.cpp.

FunctionPass * llvm::createDomOnlyPrinterPass ( )

Definition at line 228 of file DomPrinter.cpp.

FunctionPass * llvm::createDomOnlyViewerPass ( )

Definition at line 236 of file DomPrinter.cpp.

FunctionPass* llvm::createDomPrinterPass ( )
FunctionPass * llvm::createDomViewerPass ( )

Definition at line 232 of file DomPrinter.cpp.

FunctionPass * llvm::createDwarfEHPass ( const TargetMachine TM)

createDwarfEHPass - This pass mulches exception handling code into a form adapted to code generation. Required if using dwarf exception handling.

Definition at line 69 of file DwarfEHPrepare.cpp.

Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions().

FunctionPass * llvm::createEarlyCSEPass ( )
MCAsmParserExtension * llvm::createELFAsmParser ( )

Definition at line 758 of file ELFAsmParser.cpp.

MCObjectWriter * llvm::createELFObjectWriter ( MCELFObjectTargetWriter MOTW,
raw_ostream OS,
bool  IsLittleEndian 
)

Construct a new ELF writer instance.

Parameters
MOTW- The target specific ELF writer subclass.
OS- The stream to write to.
Returns
The constructed object writer.

Definition at line 1806 of file ELFObjectWriter.cpp.

Referenced by createAArch64ELFObjectWriter(), createAMDGPUELFObjectWriter(), createARMELFObjectWriter(), createHexagonELFObjectWriter(), createMipsELFObjectWriter(), createPPCELFObjectWriter(), createSparcELFObjectWriter(), createSystemZObjectWriter(), and createX86ELFObjectWriter().

MCStreamer * llvm::createELFStreamer ( MCContext Ctx,
MCAsmBackend TAB,
raw_ostream OS,
MCCodeEmitter CE,
bool  RelaxAll 
)

createELFStreamer - Create a machine code streamer which will generate ELF format object files.

Definition at line 561 of file MCELFStreamer.cpp.

References llvm::MCObjectStreamer::getAssembler(), and llvm::MCAssembler::setRelaxAll().

Referenced by createMCStreamer(), and createSystemZMCObjectStreamer().

FunctionPass* llvm::createEmitX86CodeToMemory ( )

createX86EmitCodeToMemory - Returns a pass that converts a register allocated function into raw machine code in a dynamically allocated chunk of memory.

FunctionPass * llvm::createExecutionDependencyFixPass ( const TargetRegisterClass RC)

createExecutionDependencyFixPass - This pass fixes execution time problems with dependent instructions, such as switching execution domains to match.

The pass will examine instructions using and defining registers in RC.

Definition at line 805 of file ExecutionDepsFix.cpp.

llvm::ScheduleDAGSDNodes * llvm::createFastDAGScheduler ( SelectionDAGISel IS,
CodeGenOpt::Level  OptLevel 
)

createFastDAGScheduler - This creates a "fast" scheduler.

Definition at line 800 of file ScheduleDAGFast.cpp.

References llvm::SelectionDAGISel::MF.

FunctionPass * llvm::createFastRegisterAllocator ( )

FastRegisterAllocation Pass - This pass register allocates as fast as possible. It is best suited for debug code where live ranges are short.

Definition at line 1123 of file RegAllocFast.cpp.

Referenced by llvm::TargetPassConfig::createTargetRegisterAllocator().

Flatten the false FunctionPass * llvm::createFlattenCFGPass ( )

Definition at line 49 of file FlattenCFGPass.cpp.

ModulePass * llvm::createForwardControlFlowIntegrityPass ( JumpTable::JumpTableType  JTT,
CFIntegrity  CFIType,
bool  CFIEnforcing,
StringRef  CFIFuncName 
)
ModulePass* llvm::createForwardControlFlowIntegrityPass ( )

createForwardControlFlowIntegrityPass - This pass adds control-flow integrity.

Deduce function false Pass * llvm::createFunctionAttrsPass ( )

createFunctionAttrsPass - This pass discovers functions that do not access memory, or only read memory, and gives them the readnone/readonly attribute. It also discovers function arguments that are not captured by the function and marks them with the nocapture attribute.

Definition at line 146 of file FunctionAttrs.cpp.

Referenced by LLVMAddFunctionAttrsPass(), and llvm::PassManagerBuilder::populateModulePassManager().

Function Integration false Pass * llvm::createFunctionInliningPass ( )

createFunctionInliningPass - Return a new pass object that uses a heuristic to inline direct function calls to small functions.

The Threshold can be passed directly, or asked to be computed from the given optimization and size optimization arguments.

The -inline-threshold command line option takes precedence over the threshold given here.

Definition at line 85 of file InlineSimple.cpp.

Referenced by LLVMAddFunctionInliningPass(), LLVMPassManagerBuilderPopulateLTOPassManager(), and LLVMPassManagerBuilderUseInlinerWithThreshold().

Pass * llvm::createFunctionInliningPass ( int  Threshold)

Definition at line 87 of file InlineSimple.cpp.

Pass * llvm::createFunctionInliningPass ( unsigned  OptLevel,
unsigned  SizeOptLevel 
)

Definition at line 91 of file InlineSimple.cpp.

FunctionPass* llvm::createFunctionTargetTransformInfoPass ( )

Definition at line 29 of file FunctionTargetTransformInfo.cpp.

FunctionPass * llvm::createGCInfoPrinter ( raw_ostream OS)

Creates a pass to print GC metadata.

Definition at line 111 of file GCMetadata.cpp.

References Printer.

Referenced by llvm::TargetPassConfig::addMachinePasses().

FunctionPass* llvm::createGCLoweringPass ( )

GCLowering Pass - Performs target-independent LLVM IR transformations for highly portable strategies.

Referenced by llvm::TargetPassConfig::addIRPasses().

ModulePass* llvm::createGCOVProfilerPass ( const GCOVOptions &  Options = GCOVOptions::getDefault())
ModulePass * llvm::createGenericToNVVMPass ( )

Definition at line 69 of file NVPTXGenericToNVVM.cpp.

ModulePass* llvm::createGlobalDCEPass ( )

createGlobalDCEPass - This transform is designed to eliminate unreachable internal globals (functions or global variables)

Referenced by LLVMAddGlobalDCEPass(), and llvm::PassManagerBuilder::populateModulePassManager().

Pass * llvm::createGlobalMergePass ( const TargetMachine TM = nullptr)

Definition at line 360 of file GlobalMerge.cpp.

Global Variable false ModulePass * llvm::createGlobalOptimizerPass ( )

createGlobalOptimizerPass - This function returns a new pass that optimizes non-address taken internal globals.

Definition at line 102 of file GlobalOpt.cpp.

Referenced by LLVMAddGlobalOptimizerPass(), and llvm::PassManagerBuilder::populateModulePassManager().

globalsmodref Simple mod ref analysis for false Pass * llvm::createGlobalsModRefPass ( )

Definition at line 202 of file GlobalsModRef.cpp.

std::string llvm::createGraphFilename ( const Twine Name,
int &  FD 
)
FunctionPass * llvm::createGreedyRegisterAllocator ( )

Greedy register allocation pass - This pass implements a global register allocator for optimized builds.

Definition at line 424 of file RegAllocGreedy.cpp.

Referenced by llvm::TargetPassConfig::createTargetRegisterAllocator().

ModulePass * llvm::createGVExtractionPass ( std::vector< GlobalValue * > &  GVs,
bool  deleteFn = false 
)

createGVExtractionPass - If deleteFn is true, this pass deletes the specified global values. Otherwise, it deletes as much of the module as possible, except for the global values specified.

Definition at line 151 of file ExtractGV.cpp.

FunctionPass * llvm::createGVNPass ( bool  NoLoads = false)

Definition at line 731 of file GVN.cpp.

Referenced by LLVMAddGVNPass(), and llvm::PassManagerBuilder::populateModulePassManager().

MCAsmBackend * llvm::createHexagonAsmBackend ( Target const T,
MCRegisterInfo const ,
StringRef  TT,
StringRef   
)
FunctionPass * llvm::createHexagonCFGOptimizer ( const HexagonTargetMachine TM)

Definition at line 251 of file HexagonCFGOptimizer.cpp.

FunctionPass * llvm::createHexagonCopyToCombine ( )

Definition at line 674 of file HexagonCopyToCombine.cpp.

FunctionPass* llvm::createHexagonDelaySlotFillerPass ( const TargetMachine &  TM)
MCObjectWriter * llvm::createHexagonELFObjectWriter ( raw_ostream OS,
uint8_t  OSABI,
StringRef  CPU 
)

Definition at line 57 of file HexagonELFObjectWriter.cpp.

References createELFObjectWriter().

FunctionPass * llvm::createHexagonExpandPredSpillCode ( const HexagonTargetMachine TM)

Definition at line 203 of file HexagonExpandPredSpillCode.cpp.

FunctionPass* llvm::createHexagonFixupHwLoops ( )
FunctionPass* llvm::createHexagonFPMoverPass ( const TargetMachine &  TM)
FunctionPass * llvm::createHexagonHardwareLoops ( )

Definition at line 292 of file HexagonHardwareLoops.cpp.

FunctionPass * llvm::createHexagonISelDag ( HexagonTargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

createHexagonISelDag - This pass converts a legalized DAG into a Hexagon-specific DAG, ready for instruction scheduling.

Definition at line 182 of file HexagonISelDAGToDAG.cpp.

MCCodeEmitter * llvm::createHexagonMCCodeEmitter ( MCInstrInfo const MCII,
MCRegisterInfo const MRI,
MCSubtargetInfo const MST,
MCContext MCT 
)

Definition at line 81 of file HexagonMCCodeEmitter.cpp.

Referenced by LLVMInitializeHexagonTargetMC().

FunctionPass * llvm::createHexagonNewValueJump ( )

Definition at line 653 of file HexagonNewValueJump.cpp.

FunctionPass * llvm::createHexagonPacketizer ( )

Definition at line 1421 of file HexagonVLIWPacketizer.cpp.

FunctionPass * llvm::createHexagonPeephole ( )

Definition at line 342 of file HexagonPeephole.cpp.

FunctionPass * llvm::createHexagonRemoveExtendArgs ( const HexagonTargetMachine TM)

Definition at line 88 of file HexagonRemoveSZExtArgs.cpp.

FunctionPass * llvm::createHexagonSplitConst32AndConst64 ( const HexagonTargetMachine TM)

Definition at line 179 of file HexagonSplitConst32AndConst64.cpp.

FunctionPass * llvm::createHexagonSplitTFRCondSets ( const HexagonTargetMachine TM)

Definition at line 233 of file HexagonSplitTFRCondSets.cpp.

llvm::ScheduleDAGSDNodes * llvm::createHybridListDAGScheduler ( SelectionDAGISel IS,
CodeGenOpt::Level  OptLevel 
)

createHybridListDAGScheduler - This creates a bottom up register pressure aware list scheduler that make use of latency information to avoid stalls for long latency instructions in low register pressure mode. In high register pressure mode it schedules to reduce register pressure.

Definition at line 3012 of file ScheduleDAGRRList.cpp.

References llvm::TargetSubtargetInfo::getInstrInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::SelectionDAGISel::MF, TII, and llvm::SelectionDAGISel::TLI.

Referenced by createDefaultScheduler().

llvm::ScheduleDAGSDNodes * llvm::createILPListDAGScheduler ( SelectionDAGISel IS,
CodeGenOpt::Level  OptLevel 
)

createILPListDAGScheduler - This creates a bottom up register pressure aware list scheduler that tries to increase instruction level parallelism in low register pressure mode. In high register pressure mode it schedules to reduce register pressure.

Definition at line 3028 of file ScheduleDAGRRList.cpp.

References llvm::TargetSubtargetInfo::getInstrInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::SelectionDAGISel::MF, TII, and llvm::SelectionDAGISel::TLI.

Referenced by createDefaultScheduler().

Induction Variable false Pass * llvm::createIndVarSimplifyPass ( )
raw_ostream * llvm::CreateInfoOutputFile ( )
DIVariable llvm::createInlinedVariable ( MDNode DV,
MDNode InlinedScope,
LLVMContext VMContext 
)

Create a new inlined variable based on current variable.

Parameters
DVCurrent Variable.
InlinedScopeLocation at current variable is inlined.

Definition at line 846 of file DebugInfo.cpp.

References assert(), cleanseInlinedVariable(), DIVariableInlinedAtIndex, llvm::MDNode::get(), llvm::MDNode::getOperand(), I, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), Verify, and llvm::DIVariable::Verify().

Referenced by fixupLineNumbers().

Spiller * llvm::createInlineSpiller ( MachineFunctionPass pass,
MachineFunction mf,
VirtRegMap vrm 
)

Create and return a spiller that will insert spill code directly instead of deferring though VirtRegMap.

Definition at line 191 of file InlineSpiller.cpp.

FunctionPass* llvm::createInstCountPass ( )
ModulePass* llvm::createInstrProfilingPass ( const InstrProfOptions &  Options = InstrProfOptions())

Insert frontend instrumentation based profiling.

FunctionPass * llvm::createInstructionCombiningPass ( )
FunctionPass* llvm::createInstructionNamerPass ( )
FunctionPass * llvm::createInstructionSimplifierPass ( )

Definition at line 115 of file SimplifyInstructions.cpp.

ModulePass * llvm::createInternalizePass ( ArrayRef< const char * >  ExportList)

createInternalizePass - This pass loops over all of the functions in the input module, internalizing all globals (functions and variables) it can.

The symbols in ExportList are never internalized.

The symbol in DSOList are internalized if it is safe to drop them from the symbol table.

Note that commandline options that are used with the above function are not used now!

Definition at line 222 of file Internalize.cpp.

Referenced by LLVMAddInternalizePass().

ModulePass * llvm::createInternalizePass ( )

createInternalizePass - Same as above, but with an empty exportList.

Definition at line 220 of file Internalize.cpp.

ModulePass* llvm::createIPConstantPropagationPass ( )

createIPConstantPropagationPass - This pass propagates constants from call sites into the bodies of functions.

Referenced by LLVMAddIPConstantPropagationPass().

Interprocedural Sparse Conditional Constant false ModulePass * llvm::createIPSCCPPass ( )

createIPSCCPPass - This pass propagates constants from call sites into the bodies of functions, and keeps track of whether basic blocks are executable in the process.

Definition at line 1660 of file SCCP.cpp.

Referenced by LLVMAddIPSCCPPass(), and llvm::PassManagerBuilder::populateModulePassManager().

iv Induction Variable true Pass * llvm::createIVUsersPass ( )

Definition at line 42 of file IVUsers.cpp.

ModulePass * llvm::createJumpInstrTableInfoPass ( unsigned  Bound)

Creates a JumpInstrTableInfo pass with the given bound on entry size. This bound specifies the maximum number of bytes needed to represent an unconditional jump or a trap instruction in the back end currently in use.

Definition at line 32 of file JumpInstrTableInfo.cpp.

Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile().

ImmutablePass* llvm::createJumpInstrTableInfoPass ( )
ModulePass * llvm::createJumpInstrTablesPass ( JumpTable::JumpTableType  JTT)

Creates a JumpInstrTables pass for the given type of jump table.

Definition at line 52 of file JumpInstrTables.cpp.

Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile().

ModulePass * llvm::createJumpInstrTablesPass ( )

createJumpInstrTables - This pass creates jump-instruction tables.

Definition at line 47 of file JumpInstrTables.cpp.

References llvm::JumpTable::Single.

jump Jump false FunctionPass * llvm::createJumpThreadingPass ( int  Threshold = -1)
FunctionPass * llvm::createLazyValueInfoPass ( )

createLazyValueInfoPass - This creates an instance of the LazyValueInfo pass.

Definition at line 49 of file LazyValueInfo.cpp.

Pass * llvm::createLCSSAPass ( )

Definition at line 314 of file LCSSA.cpp.

FunctionPass* llvm::createLibCallAliasAnalysisPass ( LibCallInfo *  LCI)

createLibCallAliasAnalysisPass - Create an alias analysis pass that knows about the semantics of a set of libcalls specified by LCI. The newly constructed pass takes ownership of the pointer that is provided.

Pass * llvm::createLICMPass ( )
FunctionPass * llvm::createLintPass ( )

Create a lint pass.

Check a module or function.

Definition at line 704 of file Lint.cpp.

BasicBlockPass * llvm::createLoadCombinePass ( )
loop Delete dead false Pass * llvm::createLoopDeletionPass ( )
Pass* llvm::createLoopExtractorPass ( )

createLoopExtractorPass - This pass extracts all natural loops from the program into a function if it can.

loop Recognize loop false Pass * llvm::createLoopIdiomPass ( )
loop Simplify instructions in false Pass * llvm::createLoopInstSimplifyPass ( )

Definition at line 68 of file LoopInstSimplify.cpp.

Pass * llvm::createLoopRerollPass ( )
Pass * llvm::createLoopRotatePass ( int  MaxHeaderSize = -1)
Pass * llvm::createLoopSimplifyPass ( )

Definition at line 790 of file LoopSimplify.cpp.

loop Loop Strength false Pass * llvm::createLoopStrengthReducePass ( )

Definition at line 5054 of file LoopStrengthReduce.cpp.

Referenced by llvm::TargetPassConfig::addIRPasses().

Pass * llvm::createLoopUnrollPass ( int  Threshold = -1,
int  Count = -1,
int  AllowPartial = -1,
int  Runtime = -1 
)
loop Unswitch false Pass * llvm::createLoopUnswitchPass ( bool  OptimizeForSize = false)
Pass * llvm::createLoopVectorizePass ( bool  NoUnrolling = false,
bool  AlwaysVectorize = true 
)
FunctionPass * llvm::createLowerAggrCopies ( )

Definition at line 203 of file NVPTXLowerAggrCopies.cpp.

Pass* llvm::createLowerAtomicPass ( )
FunctionPass* llvm::createLowerExpectIntrinsicPass ( )
FunctionPass* llvm::createLowerInvokePass ( )
FunctionPass* llvm::createLowerSwitchPass ( )

Referenced by LLVMAddLowerSwitchPass().

MachineFunctionPass* llvm::createMachineFunctionPrinterPass ( raw_ostream &  OS,
const std::string &  Banner = "" 
)

MachineFunctionPrinter pass - This pass prints out the machine function to the given stream as a debugging tool.

Referenced by llvm::TargetPassConfig::addPrintPass(), and INITIALIZE_PASS().

FunctionPass* llvm::createMachineRegionInfoPass ( )

Definition at line 136 of file MachineRegionInfo.cpp.

FunctionPass* llvm::createMachineVerifierPass ( const std::string &  Banner)

createMachineVerifierPass - This pass verifies cenerated machine code instructions for correctness.

Referenced by llvm::TargetPassConfig::addVerifyPass().

MCObjectWriter * llvm::createMachObjectWriter ( MCMachObjectTargetWriter MOTW,
raw_ostream OS,
bool  IsLittleEndian 
)

Construct a new Mach-O writer instance.

This routine takes ownership of the target writer subclass.

Parameters
MOTW- The target specific Mach-O writer subclass.
OS- The stream to write to.
Returns
The constructed object writer.

Definition at line 1015 of file MachObjectWriter.cpp.

Referenced by createAArch64MachObjectWriter(), createARMMachObjectWriter(), createPPCMachObjectWriter(), and createX86MachObjectWriter().

MCStreamer * llvm::createMachOStreamer ( MCContext Ctx,
MCAsmBackend TAB,
raw_ostream OS,
MCCodeEmitter CE,
bool  RelaxAll = false,
bool  LabelSections = false 
)

createMachOStreamer - Create a machine code streamer which will generate Mach-O format object files.

Takes ownership of TAB and CE.

Definition at line 456 of file MCMachOStreamer.cpp.

Referenced by createMCStreamer().

MCAsmParser * llvm::createMCAsmParser ( SourceMgr SM,
MCContext C,
MCStreamer Out,
const MCAsmInfo MAI 
)

Create an MCAsmParser instance.

Definition at line 4728 of file AsmParser.cpp.

Referenced by llvm::object::IRObjectFile::IRObjectFile().

MCStreamer * llvm::createMCAsmStreamer ( MCContext Ctx,
formatted_raw_ostream OS,
bool  isVerboseAsm,
bool  useDwarfDirectory,
MCInstPrinter InstPrint,
MCCodeEmitter CE,
MCAsmBackend TAB,
bool  ShowInst 
)
MCRelocationInfo * llvm::createMCRelocationInfo ( StringRef  TT,
MCContext Ctx 
)
MCSymbolizer * llvm::createMCSymbolizer ( StringRef  TT,
LLVMOpInfoCallback  GetOpInfo,
LLVMSymbolLookupCallback  SymbolLookUp,
void *  DisInfo,
MCContext Ctx,
MCRelocationInfo RelInfo 
)

Definition at line 187 of file MCExternalSymbolizer.cpp.

References assert().

Referenced by llvm::Target::createMCSymbolizer().

FunctionPass * llvm::createMemCpyOptPass ( )
print Print MemDeps of true FunctionPass * llvm::createMemDepPrinter ( )

Definition at line 86 of file MemDepPrinter.cpp.

FunctionPass* llvm::createMemorySanitizerPass ( int  TrackOrigins = 0)
FunctionPass * llvm::createMergedLoadStoreMotionPass ( )

createMergedLoadStoreMotionPass - The public interface to this file.

Definition at line 164 of file MergedLoadStoreMotion.cpp.

References MergedLoadStoreMotion.

Referenced by LLVMAddMergedLoadStoreMotionPass(), and llvm::PassManagerBuilder::populateModulePassManager().

ModulePass * llvm::createMergeFunctionsPass ( )

createMergeFunctionsPass - This pass discovers identical functions and collapses them.

Definition at line 1137 of file MergeFunctions.cpp.

Referenced by llvm::PassManagerBuilder::populateModulePassManager().

ModulePass* llvm::createMetaRenamerPass ( )
const MipsFrameLowering * llvm::createMips16FrameLowering ( const MipsSubtarget ST)

Create MipsFrameLowering objects.

Definition at line 188 of file Mips16FrameLowering.cpp.

Referenced by llvm::MipsFrameLowering::create().

ModulePass * llvm::createMips16HardFloat ( MipsTargetMachine TM)

Definition at line 537 of file Mips16HardFloat.cpp.

References Mips16HardFloat.

const MipsInstrInfo * llvm::createMips16InstrInfo ( const MipsSubtarget STI)

Create MipsInstrInfo objects.

Definition at line 450 of file Mips16InstrInfo.cpp.

Referenced by llvm::MipsInstrInfo::create().

FunctionPass * llvm::createMips16ISelDag ( MipsTargetMachine TM)

Definition at line 319 of file Mips16ISelDAGToDAG.cpp.

Referenced by createMipsISelDag().

const MipsTargetLowering * llvm::createMips16TargetLowering ( const MipsTargetMachine TM,
const MipsSubtarget STI 
)

Create MipsTargetLowering objects.

Definition at line 156 of file Mips16ISelLowering.cpp.

Referenced by llvm::MipsTargetLowering::create().

MCAsmBackend * llvm::createMipsAsmBackendEB32 ( const Target T,
const MCRegisterInfo MRI,
StringRef  TT,
StringRef  CPU 
)

Definition at line 418 of file MipsAsmBackend.cpp.

Referenced by LLVMInitializeMipsTargetMC().

MCAsmBackend * llvm::createMipsAsmBackendEB64 ( const Target T,
const MCRegisterInfo MRI,
StringRef  TT,
StringRef  CPU 
)

Definition at line 434 of file MipsAsmBackend.cpp.

Referenced by LLVMInitializeMipsTargetMC().

MCAsmBackend * llvm::createMipsAsmBackendEL32 ( const Target T,
const MCRegisterInfo MRI,
StringRef  TT,
StringRef  CPU 
)

Definition at line 410 of file MipsAsmBackend.cpp.

Referenced by LLVMInitializeMipsTargetMC().

MCAsmBackend * llvm::createMipsAsmBackendEL64 ( const Target T,
const MCRegisterInfo MRI,
StringRef  TT,
StringRef  CPU 
)

Definition at line 426 of file MipsAsmBackend.cpp.

Referenced by LLVMInitializeMipsTargetMC().

FunctionPass * llvm::createMipsConstantIslandPass ( MipsTargetMachine tm)

createMipsLongBranchPass - Returns a pass that converts branches to long branches.

Definition at line 442 of file MipsConstantIslandPass.cpp.

FunctionPass * llvm::createMipsDelaySlotFillerPass ( MipsTargetMachine tm)

createMipsDelaySlotFillerPass - Returns a pass that fills in delay slots in Mips MachineFunctions

Definition at line 608 of file MipsDelaySlotFiller.cpp.

MCObjectWriter * llvm::createMipsELFObjectWriter ( raw_ostream OS,
uint8_t  OSABI,
bool  IsLittleEndian,
bool  Is64Bit 
)
MCELFStreamer * llvm::createMipsELFStreamer ( MCContext Context,
MCAsmBackend MAB,
raw_ostream OS,
MCCodeEmitter Emitter,
const MCSubtargetInfo STI,
bool  RelaxAll 
)

Definition at line 73 of file MipsELFStreamer.cpp.

Referenced by createMCStreamer().

FunctionPass * llvm::createMipsISelDag ( MipsTargetMachine TM)

createMipsISelDag - This pass converts a legalized DAG into a MIPS-specific DAG, ready for instruction scheduling.

Definition at line 236 of file MipsISelDAGToDAG.cpp.

References createMips16ISelDag(), createMipsSEISelDag(), llvm::MipsTargetMachine::getSubtargetImpl(), and llvm::MipsSubtarget::inMips16Mode().

FunctionPass * llvm::createMipsLongBranchPass ( MipsTargetMachine tm)

createMipsLongBranchPass - Returns a pass that converts branches to long branches.

Definition at line 99 of file MipsLongBranch.cpp.

MCCodeEmitter * llvm::createMipsMCCodeEmitterEB ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
const MCSubtargetInfo STI,
MCContext Ctx 
)

Definition at line 36 of file MipsMCCodeEmitter.cpp.

Referenced by LLVMInitializeMipsTargetMC().

MCCodeEmitter * llvm::createMipsMCCodeEmitterEL ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
const MCSubtargetInfo STI,
MCContext Ctx 
)

Definition at line 43 of file MipsMCCodeEmitter.cpp.

Referenced by LLVMInitializeMipsTargetMC().

llvm::FunctionPass * llvm::createMipsModuleISelDag ( MipsTargetMachine &  TM)

createMipsISelDag - This pass converts a legalized DAG into a MIPS-specific DAG, ready for instruction scheduling.

Definition at line 32 of file MipsModuleISelDAGToDAG.cpp.

MCELFStreamer * llvm::createMipsNaClELFStreamer ( MCContext Context,
MCAsmBackend TAB,
raw_ostream OS,
MCCodeEmitter Emitter,
const MCSubtargetInfo STI,
bool  RelaxAll 
)

Definition at line 254 of file MipsNaClELFStreamer.cpp.

References MIPS_NACL_BUNDLE_ALIGN.

Referenced by createMCStreamer().

FunctionPass * llvm::createMipsOptimizePICCallPass ( MipsTargetMachine TM)

Return an OptimizeCall object.

Definition at line 299 of file MipsOptimizePICCall.cpp.

ModulePass * llvm::createMipsOs16 ( MipsTargetMachine TM)

Definition at line 143 of file MipsOs16.cpp.

const MipsFrameLowering * llvm::createMipsSEFrameLowering ( const MipsSubtarget ST)

Definition at line 706 of file MipsSEFrameLowering.cpp.

Referenced by llvm::MipsFrameLowering::create().

const MipsInstrInfo * llvm::createMipsSEInstrInfo ( const MipsSubtarget STI)

Definition at line 633 of file MipsSEInstrInfo.cpp.

Referenced by llvm::MipsInstrInfo::create().

FunctionPass * llvm::createMipsSEISelDag ( MipsTargetMachine TM)

Definition at line 873 of file MipsSEISelDAGToDAG.cpp.

Referenced by createMipsISelDag().

const MipsTargetLowering * llvm::createMipsSETargetLowering ( const MipsTargetMachine TM,
const MipsSubtarget STI 
)

Definition at line 227 of file MipsSEISelLowering.cpp.

Referenced by llvm::MipsTargetLowering::create().

FunctionPass * llvm::createMLxExpansionPass ( )

Definition at line 395 of file MLxExpansionPass.cpp.

ModulePass* llvm::createModuleDebugInfoPrinterPass ( )
template<typename FunctionPassT >
ModuleToFunctionPassAdaptor<FunctionPassT> llvm::createModuleToFunctionPassAdaptor ( FunctionPassT  Pass)

A function to deduce a function pass type and wrap it in the templated adaptor.

Definition at line 819 of file IR/PassManager.h.

template<typename CGSCCPassT >
ModuleToPostOrderCGSCCPassAdaptor<CGSCCPassT> llvm::createModuleToPostOrderCGSCCPassAdaptor ( CGSCCPassT  Pass)

A function to deduce a function pass type and wrap it in the templated adaptor.

Definition at line 265 of file CGSCCPassManager.h.

FunctionPass * llvm::createMSP430BranchSelectionPass ( )

createMSP430BranchSelectionPass - returns an instance of the Branch Selection Pass

Definition at line 52 of file MSP430BranchSelector.cpp.

FunctionPass * llvm::createMSP430ISelDag ( MSP430TargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

createMSP430ISelDag - This pass converts a legalized DAG into a MSP430-specific DAG, ready for instruction scheduling.

Definition at line 131 of file MSP430ISelDAGToDAG.cpp.

ImmutablePass* llvm::createNoAAPass ( )
ImmutablePass* llvm::createNoTargetTransformInfoPass ( )

Create the base case instance of a pass in the TTI analysis group.

This class provides the base case for the stack of TTI analyzes. It doesn't delegate to anything and uses the STTI and VTTI objects passed in to satisfy the queries.

Referenced by llvm::MipsTargetMachine::addAnalysisPasses().

MCStreamer * llvm::createNullStreamer ( MCContext Ctx)

createNullStreamer - Create a dummy machine code streamer, which does nothing. This is useful for timing the assembler front end.

Definition at line 41 of file MCNullStreamer.cpp.

Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), createARMNullStreamer(), createMipsNullStreamer(), and llvm::Target::createNullStreamer().

ModulePass * llvm::createNVPTXAssignValidGlobalNamesPass ( )

Definition at line 82 of file NVPTXAssignValidGlobalNames.cpp.

FunctionPass * llvm::createNVPTXFavorNonGenericAddrSpacesPass ( )

Definition at line 193 of file NVPTXFavorNonGenericAddrSpaces.cpp.

FunctionPass * llvm::createNVPTXImageOptimizerPass ( )

Definition at line 176 of file NVPTXImageOptimizer.cpp.

FunctionPass * llvm::createNVPTXISelDag ( NVPTXTargetMachine TM,
llvm::CodeGenOpt::Level  OptLevel 
)

createNVPTXISelDag - This pass converts a legalized DAG into a NVPTX-specific DAG, ready for instruction scheduling.

Definition at line 46 of file NVPTXISelDAGToDAG.cpp.

FunctionPass * llvm::createNVPTXLowerStructArgsPass ( )

Definition at line 132 of file NVPTXLowerStructArgs.cpp.

MachineFunctionPass * llvm::createNVPTXPrologEpilogPass ( )

Definition at line 44 of file NVPTXPrologEpilogPass.cpp.

MachineFunctionPass * llvm::createNVPTXReplaceImageHandlesPass ( )

Definition at line 187 of file NVPTXReplaceImageHandles.cpp.

ImmutablePass* llvm::createNVPTXTargetTransformInfoPass ( const NVPTXTargetMachine *  TM)
ModulePass * llvm::createNVVMReflectPass ( )

Definition at line 79 of file NVVMReflect.cpp.

ModulePass * llvm::createNVVMReflectPass ( const StringMap< int > &  Mapping)

Definition at line 83 of file NVVMReflect.cpp.

ImmutablePass* llvm::createObjCARCAliasAnalysisPass ( )
Pass* llvm::createObjCARCAPElimPass ( )
objc arc ObjC ARC false Pass * llvm::createObjCARCContractPass ( )

Definition at line 103 of file ObjCARCContract.cpp.

Pass* llvm::createObjCARCExpandPass ( )
FunctionPass * llvm::createPAEvalPass ( )

Definition at line 86 of file ProvenanceAnalysisEvaluator.cpp.

ModulePass* llvm::createPartialInliningPass ( )

createPartialInliningPass - This pass inlines parts of functions.

FunctionPass * llvm::createPartiallyInlineLibCallsPass ( )
FunctionPass * llvm::createPBQPRegisterAllocator ( char *  customPassID = nullptr)

Create a PBQP register allocator instance.

Definition at line 722 of file RegAllocPBQP.cpp.

Referenced by createDefaultPBQPRegisterAllocator().

FunctionPass * llvm::createPostDomOnlyPrinterPass ( )

Definition at line 244 of file DomPrinter.cpp.

FunctionPass * llvm::createPostDomOnlyViewerPass ( )

Definition at line 252 of file DomPrinter.cpp.

FunctionPass * llvm::createPostDomPrinterPass ( )

Definition at line 240 of file DomPrinter.cpp.

FunctionPass * llvm::createPostDomTree ( )

Definition at line 47 of file PostDominators.cpp.

FunctionPass * llvm::createPostDomViewerPass ( )

Definition at line 248 of file DomPrinter.cpp.

MCAsmBackend * llvm::createPPCAsmBackend ( const Target T,
const MCRegisterInfo MRI,
StringRef  TT,
StringRef  CPU 
)
FunctionPass* llvm::createPPCBranchSelectionPass ( )
ppc ctr PowerPC CTR false FunctionPass * llvm::createPPCCTRLoops ( PPCTargetMachine TM)

Definition at line 154 of file PPCCTRLoops.cpp.

ppc ctr loops PowerPC CTR Loops false FunctionPass * llvm::createPPCCTRLoopsVerify ( )

Definition at line 165 of file PPCCTRLoops.cpp.

FunctionPass* llvm::createPPCEarlyReturnPass ( )
MCObjectWriter * llvm::createPPCELFObjectWriter ( raw_ostream OS,
bool  Is64Bit,
bool  IsLittleEndian,
uint8_t  OSABI 
)

createPPCELFObjectWriter - Construct an PPC ELF object writer.

Definition at line 415 of file PPCELFObjectWriter.cpp.

References createELFObjectWriter().

FunctionPass * llvm::createPPCISelDag ( PPCTargetMachine TM)

createPPCISelDag - This pass converts a legalized DAG into a PowerPC-specific DAG, ready for instruction scheduling.

Definition at line 4229 of file PPCISelDAGToDAG.cpp.

MCObjectWriter * llvm::createPPCMachObjectWriter ( raw_ostream OS,
bool  Is64Bit,
uint32_t  CPUType,
uint32_t  CPUSubtype 
)

createPPCELFObjectWriter - Construct a PPC Mach-O object writer.

Definition at line 383 of file PPCMachObjectWriter.cpp.

References createMachObjectWriter().

MCCodeEmitter * llvm::createPPCMCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
const MCSubtargetInfo STI,
MCContext Ctx 
)
ImmutablePass* llvm::createPPCTargetTransformInfoPass ( const PPCTargetMachine *  TM)

Creates an PPC-specific Target Transformation Info pass.

Referenced by llvm::PPCTargetMachine::addAnalysisPasses().

FunctionPass* llvm::createPPCVSXCopyCleanupPass ( )
FunctionPass* llvm::createPPCVSXCopyPass ( )
FunctionPass * llvm::createPPCVSXFMAMutatePass ( )

Definition at line 1899 of file PPCInstrInfo.cpp.

BasicBlockPass * llvm::createPrintBasicBlockPass ( llvm::raw_ostream OS,
const std::string &  Banner = "" 
)

Create and return a pass that writes the BB to the specified raw_ostream.

Definition at line 124 of file IRPrintingPasses.cpp.

Referenced by llvm::BasicBlockPass::createPrinterPass().

FunctionPass * llvm::createPrintFunctionPass ( llvm::raw_ostream OS,
const std::string &  Banner = "" 
)

Create and return a pass that prints functions to the specified raw_ostream as they are processed.

Definition at line 119 of file IRPrintingPasses.cpp.

Referenced by llvm::TargetPassConfig::addIRPasses(), llvm::TargetPassConfig::addISelPrepare(), llvm::legacy::FunctionPassManagerImpl::createPrinterPass(), and llvm::FunctionPass::createPrinterPass().

ModulePass* llvm::createPrintModulePass ( raw_ostream &  OS,
const std::string &  Banner = "" 
)
FunctionPass * llvm::createPromoteMemoryToRegisterPass ( )

Definition at line 94 of file Mem2Reg.cpp.

Referenced by LLVMAddPromoteMemoryToRegisterPass().

prune Remove unused exception handling info false false Pass * llvm::createPruneEHPass ( )

createPruneEHPass - Return a new pass object which transforms invoke instructions into calls, if the callee can not unwind the stack.

Definition at line 59 of file PruneEH.cpp.

Referenced by LLVMAddPruneEHPass(), and llvm::PassManagerBuilder::populateModulePassManager().

llvm::FunctionPass * llvm::createR600ClauseMergePass ( TargetMachine tm)

Definition at line 204 of file R600ClauseMergePass.cpp.

llvm::FunctionPass * llvm::createR600ControlFlowFinalizer ( TargetMachine tm)

Definition at line 679 of file R600ControlFlowFinalizer.cpp.

R600 Emit Clause false llvm::FunctionPass * llvm::createR600EmitClauseMarkers ( )

Definition at line 333 of file R600EmitClauseMarkers.cpp.

FunctionPass * llvm::createR600ExpandSpecialInstrsPass ( TargetMachine tm)

Definition at line 55 of file R600ExpandSpecialInstrs.cpp.

MCCodeEmitter * llvm::createR600MCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
const MCSubtargetInfo STI 
)

Definition at line 83 of file R600MCCodeEmitter.cpp.

Referenced by createAMDGPUMCCodeEmitter().

llvm::FunctionPass * llvm::createR600Packetizer ( TargetMachine tm)

Definition at line 406 of file R600Packetizer.cpp.

FunctionPass * llvm::createR600TextureIntrinsicsReplacer ( )

Definition at line 301 of file R600TextureIntrinsicsReplacer.cpp.

llvm::FunctionPass * llvm::createR600VectorRegMerger ( TargetMachine tm)

Definition at line 380 of file R600OptimizeVectorRegisters.cpp.

FunctionPass* llvm::createReassociatePass ( )
FunctionPass * llvm::createRegionInfoPass ( )

Definition at line 169 of file RegionInfo.cpp.

FunctionPass * llvm::createRegionOnlyPrinterPass ( )

Definition at line 217 of file RegionPrinter.cpp.

FunctionPass * llvm::createRegionOnlyViewerPass ( )

Definition at line 209 of file RegionPrinter.cpp.

FunctionPass * llvm::createRegionPrinterPass ( )

Definition at line 213 of file RegionPrinter.cpp.

FunctionPass* llvm::createRegionViewerPass ( )
ModulePass* llvm::createRewriteSymbolsPass ( )
ModulePass * llvm::createRewriteSymbolsPass ( SymbolRewriter::RewriteDescriptorList DL)

Definition at line 548 of file SymbolRewriter.cpp.

static std::unique_ptr<RuntimeDyldELF> llvm::createRuntimeDyldELF ( RTDyldMemoryManager MM,
bool  ProcessAllSections,
RuntimeDyldCheckerImpl Checker 
)
static

Definition at line 789 of file RuntimeDyld.cpp.

Referenced by llvm::RuntimeDyld::loadObject().

static std::unique_ptr<RuntimeDyldMachO> llvm::createRuntimeDyldMachO ( Triple::ArchType  Arch,
RTDyldMemoryManager MM,
bool  ProcessAllSections,
RuntimeDyldCheckerImpl Checker 
)
static

Definition at line 798 of file RuntimeDyld.cpp.

References llvm::RuntimeDyldMachO::create().

Referenced by llvm::RuntimeDyld::loadObject().

FunctionPass * llvm::createSampleProfileLoaderPass ( )

Definition at line 751 of file SampleProfile.cpp.

References SampleProfileFile.

FunctionPass * llvm::createSampleProfileLoaderPass ( StringRef  Name)

Definition at line 755 of file SampleProfile.cpp.

ModulePass* llvm::createSanitizerCoverageModulePass ( int  CoverageLevel)
scev ScalarEvolution based Alias false FunctionPass * llvm::createScalarEvolutionAliasAnalysisPass ( )

Definition at line 69 of file ScalarEvolutionAliasAnalysis.cpp.

FunctionPass * llvm::createScalarizerPass ( )

Definition at line 672 of file Scalarizer.cpp.

Referenced by LLVMAddScalarizerPass().

FunctionPass* llvm::createScalarReplAggregatesPass ( signed  Threshold = -1,
bool  UseDomTree = true,
signed  StructMemberThreshold = -1,
signed  ArrayElementThreshold = -1,
signed  ScalarLoadThreshold = -1 
)
FunctionPass* llvm::createSCCPPass ( )
ImmutablePass* llvm::createScopedNoAliasAAPass ( )
separate const offset from Split GEPs to a variadic base and a constant offset for better false FunctionPass * llvm::createSeparateConstOffsetFromGEPPass ( const TargetMachine TM = nullptr,
bool  LowerGEP = false 
)

Definition at line 395 of file SeparateConstOffsetFromGEP.cpp.

FunctionPass * llvm::createSIAnnotateControlFlowPass ( )

Create the annotation pass.

Definition at line 347 of file SIAnnotateControlFlow.cpp.

FunctionPass* llvm::createSICodeEmitterPass ( formatted_raw_ostream &  OS)
FunctionPass * llvm::createSIFixSGPRCopiesPass ( TargetMachine tm)

Definition at line 114 of file SIFixSGPRCopies.cpp.

FunctionPass * llvm::createSIFixSGPRLiveRangesPass ( )

Definition at line 101 of file SIFixSGPRLiveRanges.cpp.

FunctionPass * llvm::createSIFoldOperandsPass ( )

Definition at line 87 of file SIFoldOperands.cpp.

FunctionPass * llvm::createSIInsertWaits ( TargetMachine tm)

Definition at line 131 of file SIInsertWaits.cpp.

FunctionPass * llvm::createSILoadStoreOptimizerPass ( TargetMachine tm)

Definition at line 139 of file SILoadStoreOptimizer.cpp.

FunctionPass * llvm::createSILowerControlFlowPass ( TargetMachine tm)

Definition at line 111 of file SILowerControlFlow.cpp.

FunctionPass * llvm::createSILowerI1CopiesPass ( )

Definition at line 68 of file SILowerI1Copies.cpp.

MCCodeEmitter * llvm::createSIMCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
const MCSubtargetInfo STI,
MCContext Ctx 
)

Definition at line 79 of file SIMCCodeEmitter.cpp.

Referenced by createAMDGPUMCCodeEmitter().

Pass * llvm::createSimpleLoopUnrollPass ( )
Pass * llvm::createSingleLoopExtractorPass ( )

createSingleLoopExtractorPass - This pass extracts one natural loop from the program into a function if it can. This is used by bugpoint.

Definition at line 155 of file LoopExtractor.cpp.

FunctionPass * llvm::createSinkingPass ( )

Definition at line 72 of file Sink.cpp.

FunctionPass * llvm::createSIPrepareScratchRegs ( )

Definition at line 56 of file SIPrepareScratchRegs.cpp.

FunctionPass * llvm::createSIShrinkInstructionsPass ( )

Definition at line 70 of file SIShrinkInstructions.cpp.

FunctionPass * llvm::createSITypeRewriter ( )

Definition at line 160 of file SITypeRewriter.cpp.

FunctionPass * llvm::createSjLjEHPreparePass ( const TargetMachine TM)

createSjLjEHPreparePass - This pass adapts exception handling code to use the GCC-style builtin setjmp/longjmp (sjlj) to handling EH control flow.

Definition at line 86 of file SjLjEHPrepare.cpp.

Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions().

SlotTracker * llvm::createSlotTracker ( const Module M)

Create a new SlotTracker for a Module.

Definition at line 613 of file AsmWriter.cpp.

static SlotTracker* llvm::createSlotTracker ( const Value V)
static

Definition at line 617 of file AsmWriter.cpp.

Pass * llvm::createSLPVectorizerPass ( )
llvm::ScheduleDAGSDNodes * llvm::createSourceListDAGScheduler ( SelectionDAGISel IS,
CodeGenOpt::Level  OptLevel 
)

createBURRListDAGScheduler - This creates a bottom up list scheduler that schedules nodes in source code order when possible.

Definition at line 2998 of file ScheduleDAGRRList.cpp.

References llvm::TargetSubtargetInfo::getInstrInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::SelectionDAGISel::MF, and TII.

Referenced by createDefaultScheduler().

MCAsmBackend * llvm::createSparcAsmBackend ( const Target T,
const MCRegisterInfo MRI,
StringRef  TT,
StringRef  CPU 
)

Definition at line 256 of file SparcAsmBackend.cpp.

Referenced by LLVMInitializeSparcTargetMC().

FunctionPass * llvm::createSparcDelaySlotFillerPass ( TargetMachine tm)

createSparcDelaySlotFillerPass - Returns a pass that fills in delay slots in Sparc MachineFunctions

Definition at line 102 of file DelaySlotFiller.cpp.

MCObjectWriter * llvm::createSparcELFObjectWriter ( raw_ostream OS,
bool  Is64Bit,
uint8_t  OSABI 
)

Definition at line 107 of file SparcELFObjectWriter.cpp.

References createELFObjectWriter().

FunctionPass * llvm::createSparcISelDag ( SparcTargetMachine TM)

createSparcISelDag - This pass converts a legalized DAG into a SPARC-specific DAG, ready for instruction scheduling.

Definition at line 218 of file SparcISelDAGToDAG.cpp.

MCCodeEmitter * llvm::createSparcMCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
const MCSubtargetInfo STI,
MCContext Ctx 
)

Definition at line 75 of file SparcMCCodeEmitter.cpp.

Referenced by LLVMInitializeSparcTargetMC().

FunctionPass * llvm::createSROAPass ( bool  RequiresDomTree = true)
FunctionPass* llvm::createStackProtectorPass ( const TargetMachine *  TM)

createStackProtectorPass - This pass adds stack protectors to functions.

Referenced by llvm::TargetPassConfig::addISelPrepare().

ModulePass* llvm::createStripDeadDebugInfoPass ( )
ModulePass * llvm::createStripDeadPrototypesPass ( )

createStripDeadPrototypesPass - This pass removes any function declarations (prototypes) that are not used.

Definition at line 72 of file StripDeadPrototypes.cpp.

Referenced by LLVMAddStripDeadPrototypesPass(), and llvm::PassManagerBuilder::populateModulePassManager().

ModulePass* llvm::createStripDebugDeclarePass ( )
ModulePass* llvm::createStripNonDebugSymbolsPass ( )
ModulePass* llvm::createStripSymbolsPass ( bool  OnlyDebugInfo = false)
Pass * llvm::createStructurizeCFGPass ( )

Create the pass.

Definition at line 894 of file StructurizeCFG.cpp.

FunctionPass * llvm::createSystemZElimComparePass ( SystemZTargetMachine TM)

Definition at line 95 of file SystemZElimCompare.cpp.

FunctionPass * llvm::createSystemZISelDag ( SystemZTargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

Definition at line 337 of file SystemZISelDAGToDAG.cpp.

FunctionPass * llvm::createSystemZLongBranchPass ( SystemZTargetMachine TM)

Definition at line 169 of file SystemZLongBranch.cpp.

MCAsmBackend * llvm::createSystemZMCAsmBackend ( const Target T,
const MCRegisterInfo MRI,
StringRef  TT,
StringRef  CPU 
)
MCCodeEmitter * llvm::createSystemZMCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
const MCSubtargetInfo STI,
MCContext Ctx 
)

Definition at line 95 of file SystemZMCCodeEmitter.cpp.

Referenced by LLVMInitializeSystemZTargetMC().

MCObjectWriter * llvm::createSystemZObjectWriter ( raw_ostream OS,
uint8_t  OSABI 
)

Definition at line 111 of file SystemZMCObjectWriter.cpp.

References createELFObjectWriter().

FunctionPass * llvm::createSystemZShortenInstPass ( SystemZTargetMachine TM)

Definition at line 51 of file SystemZShortenInst.cpp.

Tail Call false FunctionPass * llvm::createTailCallEliminationPass ( )
FunctionPass* llvm::createThreadSanitizerPass ( )
FunctionPass * llvm::createThumb2ITBlockPass ( )

createThumb2ITBlockPass - Returns an instance of the Thumb2 IT blocks insertion pass.

Definition at line 281 of file Thumb2ITBlockPass.cpp.

FunctionPass * llvm::createThumb2SizeReductionPass ( )

createThumb2SizeReductionPass - Returns an instance of the Thumb2 size reduction pass.

Definition at line 1031 of file Thumb2SizeReduction.cpp.

MCAsmBackend * llvm::createThumbBEAsmBackend ( const Target T,
const MCRegisterInfo MRI,
StringRef  TT,
StringRef  CPU 
)

Definition at line 796 of file ARMAsmBackend.cpp.

References createARMAsmBackend().

Referenced by LLVMInitializeARMTargetMC().

MCAsmBackend * llvm::createThumbLEAsmBackend ( const Target T,
const MCRegisterInfo MRI,
StringRef  TT,
StringRef  CPU 
)

Definition at line 790 of file ARMAsmBackend.cpp.

References createARMAsmBackend().

Referenced by LLVMInitializeARMTargetMC().

ImmutablePass* llvm::createTypeBasedAliasAnalysisPass ( )
Pass* llvm::createUnifyFunctionExitNodesPass ( )
FunctionPass* llvm::createUnreachableBlockEliminationPass ( )

createUnreachableBlockEliminationPass - The LLVM code generator does not work well with unreachable basic blocks (what live ranges make sense for a block that cannot be reached?). As such, a code generator should either not instruction select unreachable blocks, or run this pass as its last LLVM modifying pass to clean up blocks that are not reachable from the entry block.

Referenced by llvm::TargetPassConfig::addIRPasses(), and llvm::TargetPassConfig::addPassesToHandleExceptions().

FunctionPass* llvm::createVerifierPass ( bool  FatalErrors = true)

Create a verifier pass.

Check a module or function for validity. This is essentially a pass wrapped around the above verifyFunction and verifyModule routines and functionality. When the pass detects a verification error it is always printed to stderr, and by default they are fatal. You can override that by passing false to FatalErrors.

Note that this creates a pass suitable for the legacy pass manager. It has nothing to do with VerifierPass.

Referenced by llvm::TargetPassConfig::addIRPasses(), llvm::TargetPassConfig::addISelPrepare(), LLVMAddVerifierPass(), and llvm::PassManagerBuilder::populateLTOPassManager().

ScheduleDAGSDNodes * llvm::createVLIWDAGScheduler ( SelectionDAGISel IS,
CodeGenOpt::Level  OptLevel 
)

createVLIWDAGScheduler - This creates a top-down list scheduler.

createVLIWDAGScheduler - Scheduler for VLIW targets. This creates top down DFA driven list scheduler with clustering heuristic to control register pressure.

Definition at line 277 of file ScheduleDAGVLIW.cpp.

References llvm::SelectionDAGISel::AA, and llvm::SelectionDAGISel::MF.

Referenced by createDefaultScheduler().

MCObjectWriter * llvm::createWinCOFFObjectWriter ( MCWinCOFFObjectTargetWriter MOTW,
raw_ostream OS 
)

Construct a new Win COFF writer instance.

Parameters
MOTW- The target specific WinCOFF writer subclass.
OS- The stream to write to.
Returns
The constructed object writer.

Definition at line 1064 of file WinCOFFObjectWriter.cpp.

Referenced by createARMWinCOFFObjectWriter(), and createX86WinCOFFObjectWriter().

MCAsmBackend * llvm::createX86_32AsmBackend ( const Target T,
const MCRegisterInfo MRI,
StringRef  TT,
StringRef  CPU 
)
MCAsmBackend * llvm::createX86_64AsmBackend ( const Target T,
const MCRegisterInfo MRI,
StringRef  TT,
StringRef  CPU 
)
MCRelocationInfo * llvm::createX86_64ELFRelocationInfo ( MCContext Ctx)

createX86_64ELFORelocationInfo - Construct X86-64 ELF relocation info.

createX86ELFRelocationInfo - Construct an X86 Mach-O RelocationInfo.

Definition at line 132 of file X86ELFRelocationInfo.cpp.

Referenced by createX86MCRelocationInfo().

MCRelocationInfo * llvm::createX86_64MachORelocationInfo ( MCContext Ctx)

createX86_64MachORelocationInfo - Construct X86-64 Mach-O relocation info.

createX86_64MachORelocationInfo - Construct an X86-64 Mach-O RelocationInfo.

Definition at line 114 of file X86MachORelocationInfo.cpp.

Referenced by createX86MCRelocationInfo().

X86AsmInstrumentation * llvm::CreateX86AsmInstrumentation ( const MCTargetOptions &  MCOptions,
const MCContext &  Ctx,
const MCSubtargetInfo &  STI 
)
MCObjectWriter * llvm::createX86ELFObjectWriter ( raw_ostream OS,
bool  IsELF64,
uint8_t  OSABI,
uint16_t  EMachine 
)

createX86ELFObjectWriter - Construct an X86 ELF object writer.

Definition at line 268 of file X86ELFObjectWriter.cpp.

References createELFObjectWriter().

FunctionPass * llvm::createX86FixupLEAs ( )

createX86FixupLEAs - Return a a pass that selectively replaces certain instructions (like add, sub, inc, dec, some shifts, and some multiplies) by equivalent LEA instructions, in order to eliminate execution delays in some Atom processors.

Definition at line 149 of file X86FixupLEAs.cpp.

FunctionPass * llvm::createX86FloatingPointStackifierPass ( )

createX86FloatingPointStackifierPass - This function returns a pass which converts floating point register references and pseudo instructions into floating point stack references and physical instructions.

Definition at line 284 of file X86FloatingPoint.cpp.

FunctionPass * llvm::createX86GlobalBaseRegPass ( )

createX86GlobalBaseRegPass - This pass initializes a global base register for PIC on x86-32.

Definition at line 5808 of file X86InstrInfo.cpp.

FunctionPass * llvm::createX86ISelDag ( X86TargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

createX86ISelDag - This pass converts a legalized DAG into a X86-specific DAG, ready for instruction scheduling.

Definition at line 2851 of file X86ISelDAGToDAG.cpp.

FunctionPass * llvm::createX86IssueVZeroUpperPass ( )

createX86IssueVZeroUpperPass - This pass inserts AVX vzeroupper instructions before each call to avoid transition penalty between functions encoded with AVX and SSE.

Definition at line 91 of file X86VZeroUpper.cpp.

MCObjectWriter * llvm::createX86MachObjectWriter ( raw_ostream OS,
bool  Is64Bit,
uint32_t  CPUType,
uint32_t  CPUSubtype 
)

createX86MachObjectWriter - Construct an X86 Mach-O object writer.

Definition at line 602 of file X86MachObjectWriter.cpp.

References createMachObjectWriter().

MCCodeEmitter * llvm::createX86MCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
const MCSubtargetInfo STI,
MCContext Ctx 
)

Definition at line 172 of file X86MCCodeEmitter.cpp.

Referenced by LLVMInitializeX86TargetMC().

FunctionPass * llvm::createX86PadShortFunctions ( )

createX86PadShortFunctions - Return a pass that pads short functions with NOOPs. This will prevent a stall when returning on the Atom.

Definition at line 89 of file X86PadShortFunction.cpp.

ImmutablePass* llvm::createX86TargetTransformInfoPass ( const X86TargetMachine *  TM)

Creates an X86-specific Target Transformation Info pass.

Referenced by llvm::X86TargetMachine::addAnalysisPasses().

MCObjectWriter * llvm::createX86WinCOFFObjectWriter ( raw_ostream OS,
bool  Is64Bit 
)

createX86WinCOFFObjectWriter - Construct an X86 Win COFF object writer.

Definition at line 91 of file X86WinCOFFObjectWriter.cpp.

References createWinCOFFObjectWriter().

MCStreamer * llvm::createX86WinCOFFStreamer ( MCContext C,
MCAsmBackend AB,
MCCodeEmitter CE,
raw_ostream OS,
bool  RelaxAll 
)

createX86WinCOFFStreamer - Construct an X86 Windows COFF machine code streamer which will generate PE/COFF format object files.

Takes ownership of AB and CE.

Definition at line 52 of file X86WinCOFFStreamer.cpp.

Referenced by createMCStreamer().

FunctionPass * llvm::createXCoreFrameToArgsOffsetEliminationPass ( )

createXCoreFrameToArgsOffsetEliminationPass - returns an instance of the Frame to args offset elimination pass

Definition at line 41 of file XCoreFrameToArgsOffsetElim.cpp.

FunctionPass * llvm::createXCoreISelDag ( XCoreTargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

createXCoreISelDag - This pass converts a legalized DAG into a XCore-specific DAG, ready for instruction scheduling.

Definition at line 85 of file XCoreISelDAGToDAG.cpp.

ModulePass* llvm::createXCoreLowerThreadLocalPass ( )
ImmutablePass* llvm::createXCoreTargetTransformInfoPass ( const XCoreTargetMachine *  TM)
raw_ostream & llvm::dbgs ( )

dbgs - Return a circular-buffered debug stream.

dbgs() - This returns a reference to a raw_ostream for debugging messages. If debugging is disabled it returns errs(). Use it like: dbgs() << "foo" << "bar";

Definition at line 113 of file Debug.cpp.

References llvm::sys::AddSignalHandler(), debug_user_sig_handler(), DebugBufferSize, DebugFlag, EnableDebugBuffering, and errs().

Referenced by llvm::InstCombineWorklist::Add(), addChainDependency(), llvm::ExecutionEngine::addGlobalMapping(), llvm::InstCombineWorklist::AddInitialGroup(), llvm::TargetPassConfig::addIRPasses(), llvm::TargetPassConfig::addISelPrepare(), llvm::PMDataManager::addLowerLevelRequiredPass(), llvm::TargetPassConfig::addMachinePasses(), llvm::TargetPassConfig::addPrintPass(), AddReachableCodeToWorklist(), llvm::DIEHash::addSLEB128(), llvm::BlockFrequencyInfoImplBase::addToDist(), llvm::DIEHash::addULEB128(), llvm::IVUsers::AddUsersImpl(), AdjustStackOffset(), llvm::AggressiveAntiDepBreaker::AggressiveAntiDepBreaker(), llvm::RegAllocBase::allocatePhysRegs(), llvm::AllocationOrder::AllocationOrder(), llvm::HexagonInstrInfo::AnalyzeBranch(), llvm::Hexagon_CCState::AnalyzeCallOperands(), llvm::CCState::AnalyzeCallOperands(), llvm::Hexagon_CCState::AnalyzeCallResult(), llvm::CCState::AnalyzeCallResult(), llvm::Hexagon_CCState::AnalyzeFormalArguments(), llvm::CCState::AnalyzeFormalArguments(), AnalyzeLoadFromClobberingWrite(), llvm::Hexagon_CCState::AnalyzeReturn(), llvm::CCState::AnalyzeReturn(), llvm::A57ChainingConstraint::apply(), llvm::LiveRegMatrix::assign(), llvm::SelectionDAG::AssignTopologicalOrder(), llvm::CriticalAntiDepBreaker::BreakAntiDependencies(), llvm::AggressiveAntiDepBreaker::BreakAntiDependencies(), BreakUpSubtract(), BUCompareLatency(), llvm::SchedBoundary::bumpCycle(), llvm::SchedBoundary::bumpNode(), BURRSort(), llvm::LiveRangeEdit::calculateRegClassAndHint(), calculateSpillWeightsAndHints(), CanPropagatePredecessorsForPHIs(), llvm::RuntimeDyldCheckerImpl::check(), llvm::GenericScheduler::checkAcyclicLatency(), checkForCyclesHelper(), llvm::SchedBoundary::checkHazard(), clampStackAlignment(), collectInvolvedReg(), llvm::SCEVAddRecExpr::collectParametricTerms(), completeEphemeralValues(), llvm::ObjectSizeOffsetVisitor::compute(), llvm::SCEVAddRecExpr::computeAccessFunctions(), computeADRP(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), llvm::BlockFrequencyInfoImplBase::computeLoopScale(), computeOthers(), convertFloatingToInteger(), llvm::X86InstrInfo::copyPhysReg(), llvm::SchedBoundary::countResource(), createIrreducibleLoop(), llvm::X86Disassembler::Debug(), debug_user_sig_handler(), DeleteInstructionInBlock(), llvm::SCEVAddRecExpr::delinearize(), llvm::DependenceAnalysis::depends(), llvm::Constant::destroyConstantImpl(), llvm::BlockFrequencyInfoImplBase::distributeMass(), llvm::BlockFrequencyInfoImpl< BlockT >::doFunction(), llvm::InstCombiner::DoOneIteration(), llvm::Comdat::dump(), llvm::MCLabel::dump(), llvm::BranchProbability::dump(), llvm::RegisterPressure::dump(), llvm::MachineLoop::dump(), llvm::MCValue::dump(), llvm::ILPValue::dump(), llvm::LiveDebugVariables::dump(), llvm::MCParsedAsmOperand::dump(), llvm::LatencyPriorityQueue::dump(), llvm::Metadata::dump(), llvm::PHITransAddr::dump(), llvm::SubtargetFeatures::dump(), llvm::DebugLoc::dump(), llvm::DIEAbbrev::dump(), llvm::DominanceFrontierBase< BlockT >::dump(), llvm::ValueEnumerator::dump(), llvm::CallGraph::dump(), llvm::LiveVariables::VarInfo::dump(), llvm::Trace::dump(), llvm::LexicalScope::dump(), llvm::bfi_detail::BlockMass::dump(), llvm::Type::dump(), llvm::MachineJumpTableInfo::dump(), llvm::Pass::dump(), llvm::ResourcePriorityQueue::dump(), llvm::SCEV::dump(), llvm::DwarfAccelTable::Atom::dump(), llvm::LivePhysRegs::dump(), llvm::MCOperand::dump(), llvm::PMStack::dump(), llvm::SlotIndex::dump(), llvm::MCSymbol::dump(), llvm::MachineConstantPool::dump(), llvm::IVUsers::dump(), llvm::AliasSet::dump(), llvm::VirtRegMap::dump(), llvm::MCInst::dump(), llvm::LiveRange::Segment::dump(), llvm::DIE::dump(), llvm::DominanceFrontier::dump(), llvm::CallGraphNode::dump(), llvm::Value::dump(), llvm::DIDescriptor::dump(), llvm::DIEValue::dump(), llvm::DwarfAccelTable::dump(), llvm::ConstantRange::dump(), llvm::GCOVFunction::dump(), llvm::MachineFunction::dump(), llvm::GCOVBlock::dump(), llvm::AttributeSet::dump(), llvm::SlotIndexes::dump(), llvm::CallGraphWrapperPass::dump(), llvm::AliasSetTracker::dump(), llvm::SplitEditor::dump(), llvm::ScaledNumberBase::dump(), llvm::RegPressureTracker::dump(), llvm::RegionBase< RegionTr >::dump(), llvm::BlockFrequencyInfoImplBase::dump(), llvm::Loop::dump(), llvm::Twine::dump(), llvm::DIETypeSignature::dump(), llvm::SUnit::dump(), llvm::ReadyQueue::dump(), llvm::LiveRange::dump(), llvm::MachineFrameInfo::dump(), llvm::ConstantUniqueMap< llvm::ConstantExpr >::dump(), llvm::MachineBasicBlock::dump(), llvm::Module::dump(), llvm::PBQP::Graph< RegAllocSolverImpl >::dump(), llvm::LiveInterval::dump(), llvm::SDNode::dump(), llvm::RegionInfoBase< RegionTr >::dump(), llvm::NamedMDNode::dump(), llvm::MachineInstr::dump(), llvm::SelectionDAG::dump(), llvm::APInt::dump(), llvm::SUnit::dumpAll(), llvm::PMTopLevelManager::dumpArguments(), llvm::PMDataManager::dumpLastUses(), dumpMachineInstrRangeWithSlotIndex(), llvm::ScheduleDAGSDNodes::dumpNode(), DumpNodes(), llvm::PMDataManager::dumpPassArguments(), llvm::PMDataManager::dumpPassInfo(), llvm::Pass::dumpPassStructure(), llvm::FPPassManager::dumpPassStructure(), llvm::SDNode::dumpr(), llvm::TargetRegisterInfo::dumpReg(), dumpRegSetPressure(), llvm::RuntimeDyldMachO::dumpRelocationToResolve(), llvm::Twine::dumpRepr(), llvm::SDNode::dumprWithDepth(), llvm::ScheduleDAGSDNodes::dumpSchedule(), llvm::ScheduleDAGMI::dumpSchedule(), llvm::SchedBoundary::dumpScheduledState(), dumpSectionMemory(), dumpSmallBitVector(), llvm::DWARFContextInMemory::DWARFContextInMemory(), llvm::LiveRangeEdit::eliminateDeadDefs(), EliminateDeadSwitchCases(), llvm::RuntimeDyldImpl::emitCommonSymbols(), llvm::PPCDispatchGroupSBHazardRecognizer::EmitInstruction(), llvm::TargetLowering::EmitInstrWithCustomInserter(), llvm::RuntimeDyldImpl::emitSection(), llvm::SplitEditor::enterIntvAfter(), llvm::SplitEditor::enterIntvAtEnd(), llvm::SplitEditor::enterIntvBefore(), llvm::InstCombiner::EraseInstFromFunction(), EvaluateStaticConstructor(), executeCmpInst(), executeFAddInst(), executeFCMP_OEQ(), executeFCMP_OGE(), executeFCMP_OGT(), executeFCMP_OLE(), executeFCMP_OLT(), executeFCMP_ONE(), executeFDivInst(), executeFMulInst(), executeFRemInst(), executeFSubInst(), executeICMP_EQ(), executeICMP_NE(), executeICMP_SGE(), executeICMP_SGT(), executeICMP_SLE(), executeICMP_SLT(), executeICMP_UGE(), executeICMP_UGT(), executeICMP_ULE(), executeICMP_ULT(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), extendSegmentsToUses(), extractInteger(), extractVector(), fdbgs(), llvm::SchedDFSImpl::finalize(), llvm::ScalarEvolution::findArrayDimensions(), llvm::SSAUpdaterImpl< UpdaterT >::FindAvailableVals(), findCallees(), findGCD(), findIrreducibleHeaders(), llvm::SchedBoundary::findMaxLatency(), llvm::RegScavenger::FindUnusedReg(), llvm::SplitEditor::finish(), llvm::ScheduleDAGInstrs::fixupKills(), FoldBlockIntoPredecessor(), FoldBranchToCommonDest(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::InstCombiner::FoldShiftByConstant(), FoldTwoEntryPHINode(), llvm::ARMTargetLowering::functionArgumentNeedsConsecutiveRegisters(), llvm::FunctionLoweringInfo::getArgumentFrameIndex(), llvm::ScoreboardHazardRecognizer::getHazardType(), llvm::Mips16InstrInfo::getInlineAsmLength(), llvm::InlineCostAnalysis::getInlineCost(), GetLoadValueForLoad(), llvm::RegPressureTracker::getMaxUpwardPressureDelta(), getNewAlignment(), getNewAlignmentDiff(), llvm::SchedBoundary::getOtherResourceCount(), getPreStartForSignExtend(), llvm::CCState::getRemainingRegParmsForType(), llvm::DependenceAnalysis::getSplitIteration(), llvm::MachineSSAUpdater::GetValueInMiddleOfBlock(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), hasOutsideLoopUser(), hasVRegCycleUse(), llvm::ExecutionEngine::InitializeMemory(), llvm::ScheduleDAGMILive::initRegPressure(), initVRegCycle(), InlineCallIfPossible(), insertCopy(), insertInteger(), InsertPreheaderForLoop(), insertUniqueBackedgeBlock(), insertVector(), llvm::MachineTraceMetrics::Ensemble::invalidate(), llvm::MachineTraceMetrics::invalidate(), isProfitableChain(), isStridedPtr(), KnuthDiv(), llvm::LazyCallGraph::LazyCallGraph(), llvm::SplitEditor::leaveIntvAfter(), llvm::SplitEditor::leaveIntvAtTop(), llvm::SplitEditor::leaveIntvBefore(), LinearizeExprTree(), llvm_unreachable_internal(), llvm::RuntimeDyldImpl::loadObjectImpl(), llvm::HexagonTargetLowering::LowerCall(), llvm::object::MachORebaseEntry::moveNext(), llvm::object::MachOBindEntry::moveNext(), llvm::AggressiveAntiDepBreaker::Observe(), OptimizeAwayTrappingUsesOfLoads(), optimizeGlobalCtorsList(), llvm::OptLevelChanger::OptLevelChanger(), llvm::SplitEditor::overlapIntv(), llvm::BlockFrequencyInfoImplBase::packageLoop(), llvm::cl::ParseCommandLineOptions(), performBitcastCombine(), performConcatVectorsCombine(), llvm::MipsSETargetLowering::PerformDAGCombine(), PerformHeapAllocSRoA(), llvm::R600SchedStrategy::pickNode(), llvm::ConvergingVLIWScheduler::pickNode(), llvm::GenericScheduler::pickNode(), llvm::PostGenericScheduler::pickNode(), llvm::GenericScheduler::pickNodeBidirectional(), llvm::RuntimeDyldMachO::populateIndirectSymbolPointersSection(), PrintOps(), printReachingDef(), llvm::AArch64FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::RuntimeDyldELF::processRelocationRef(), ProfitableToMerge(), reachedUsesToDefs(), llvm::RuntimeDyldImpl::reassignSectionAddress(), registerADRCandidate(), llvm::GenericScheduler::registerRoots(), llvm::PostGenericScheduler::registerRoots(), llvm::R600SchedStrategy::releaseBottomNode(), llvm::ScheduleDAGMI::releasePred(), llvm::ScheduleDAGMI::releaseSucc(), llvm::R600SchedStrategy::releaseTopNode(), llvm::PMDataManager::removeDeadPasses(), llvm::LazyCallGraph::SCC::removeInterSCCEdge(), llvm::PMDataManager::removeNotPreservedAnalysis(), llvm::SlotIndexes::renumberIndexes(), llvm::SCEVExpander::replaceCongruentIVs(), llvm::InstCombiner::ReplaceInstUsesWith(), replaceSymbolicStrideSCEV(), ReplaceUsesOfWith(), llvm::GenericScheduler::reschedulePhysRegCopies(), llvm::VLIWResourceModel::reserveResources(), llvm::MipsTargetMachine::resetSubtarget(), llvm::SelectionDAGBuilder::resolveDanglingDebugInfo(), llvm::RuntimeDyldImpl::resolveExternalSymbols(), llvm::RuntimeDyldImpl::resolveRelocations(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), rewriteLoopExitBlock(), llvm::VerifierPass::run(), llvm::DAGTypeLegalizer::run(), llvm::Interpreter::run(), llvm::PassManager< IRUnitT >::run(), llvm::BranchProbabilityInfo::runOnFunction(), llvm::RGPassManager::runOnFunction(), llvm::StackMapLiveness::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::SlotIndexes::runOnMachineFunction(), llvm::MipsOs16::runOnModule(), llvm::Inliner::runOnSCC(), llvm::RegScavenger::scavengeRegister(), llvm::R600SchedStrategy::schedNode(), llvm::VLIWMachineScheduler::schedule(), llvm::ScheduleDAGMI::schedule(), llvm::ScheduleDAGMILive::schedule(), llvm::PMTopLevelManager::schedulePass(), llvm::SchedDFSResult::scheduleTree(), llvm::ConvergingVLIWScheduler::SchedulingCost(), llvm::ScoreboardHazardRecognizer::ScoreboardHazardRecognizer(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::FastISel::selectIntrinsicCall(), llvm::SplitEditor::selectIntv(), separateNestedLoop(), llvm::StackMaps::serializeToStackMapSection(), llvm::BranchProbabilityInfo::setEdgeWeight(), llvm::GenericSchedulerBase::setPolicy(), llvm::ARMBaseRegisterInfo::shouldCoalesce(), llvm::LiveIntervals::shrinkToUses(), SimplifyBranchOnICmpChain(), SimplifyCondBranchToCondBranch(), SimplifyCondBranchToTwoReturns(), simplifyOneLoop(), SinkThenElseCodeToEnd(), llvm::LoopPass::skipOptnoneFunction(), llvm::FunctionPass::skipOptnoneFunction(), llvm::BasicBlockPass::skipOptnoneFunction(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), llvm::SparseSolver::Solve(), speculatePHINodeLoads(), speculateSelectInstLoads(), SpeculativelyExecuteBB(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::MachineBasicBlock::SplitCriticalEdge(), llvm::SplitEditor::splitLiveThroughBlock(), llvm::SplitEditor::splitRegInBlock(), llvm::SplitEditor::splitRegOutBlock(), SRAGlobal(), llvm::DbgValueHistoryMap::startInstrRange(), llvm::ExecutionEngine::StoreValueToMemory(), llvm::ConvergingVLIWScheduler::traceCandidate(), llvm::GenericSchedulerBase::traceCandidate(), tracePick(), truncateIVUse(), llvm::GenericScheduler::tryCandidate(), tryLowerToSLI(), tryPromoteAllocaToVector(), TryToShrinkGlobalToBoolean(), TryToSimplifyUncondBranchFromEmptyBlock(), llvm::LiveRegMatrix::unassign(), UnrollLoop(), unwrapLoop(), llvm::LiveIntervals::HMEditor::updateAllRanges(), llvm::ScheduleDAGMILive::updatePressureDiffs(), llvm::ScheduleDAGMILive::updateScheduledPressure(), llvm::MipsSubtarget::useConstantIslands(), llvm::SplitEditor::useIntv(), llvm::ValueHandleBase::ValueIsDeleted(), llvm::ValueHandleBase::ValueIsRAUWd(), llvm::ScalarEvolution::verifyAnalysis(), verifyCTRBranch(), VerifyPHIs(), llvm::ScheduleDAG::VerifyScheduledDAG(), llvm::Interpreter::visitAllocaInst(), llvm::InstCombiner::visitAllocaInst(), llvm::Interpreter::visitBinaryOperator(), llvm::Interpreter::visitExtractElementInst(), llvm::Interpreter::visitFCmpInst(), llvm::Interpreter::visitICmpInst(), llvm::ObjectSizeOffsetVisitor::visitInstruction(), llvm::ObjectSizeOffsetEvaluator::visitInstruction(), llvm::Interpreter::visitLoadInst(), llvm::InstCombiner::visitSExt(), llvm::Interpreter::visitStoreInst(), llvm::InstCombiner::visitTrunc(), llvm::Interpreter::visitVAArgInst(), llvm::InstCombiner::visitZExt(), llvm::MachObjectWriter::WriteObject(), llvm::OptLevelChanger::~OptLevelChanger(), llvm::Value::~Value(), and llvm::ValueSymbolTable::~ValueSymbolTable().

void llvm::DecodeBLENDMask ( MVT  VT,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)
void llvm::DecodeINSERTPSMask ( unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)
void llvm::DecodeMOVHLPSMask ( unsigned  NElts,
SmallVectorImpl< int > &  ShuffleMask 
)
void llvm::DecodeMOVLHPSMask ( unsigned  NElts,
SmallVectorImpl< int > &  ShuffleMask 
)
void llvm::DecodeMOVSHDUPMask ( MVT  VT,
SmallVectorImpl< int > &  ShuffleMask 
)
void llvm::DecodeMOVSLDUPMask ( MVT  VT,
SmallVectorImpl< int > &  ShuffleMask 
)
void llvm::DecodePALIGNRMask ( MVT  VT,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)
void llvm::DecodePSHUFBMask ( const Constant *  C,
SmallVectorImpl< int > &  ShuffleMask 
)
void llvm::DecodePSHUFBMask ( ArrayRef< uint64_t >  RawMask,
SmallVectorImpl< int > &  ShuffleMask 
)

Decode a PSHUFB mask from a raw array of constants such as from BUILD_VECTOR.

Definition at line 304 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::ArrayRef< T >::size(), SM_SentinelUndef, and SM_SentinelZero.

void llvm::DecodePSHUFHWMask ( MVT  VT,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)
void llvm::DecodePSHUFLWMask ( MVT  VT,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)
void llvm::DecodePSHUFMask ( MVT  VT,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)

DecodePSHUFMask - This decodes the shuffle masks for pshufd, and vpermilp*. VT indicates the type of the vector allowing it to handle different datatypes and vector widths.

Definition at line 132 of file X86ShuffleDecode.cpp.

References llvm::MVT::getSizeInBits(), llvm::MVT::getVectorNumElements(), and llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

void llvm::DecodePSLLDQMask ( MVT  VT,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)
void llvm::DecodePSRLDQMask ( MVT  VT,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)
void llvm::DecodeSHUFPMask ( MVT  VT,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)

DecodeSHUFPMask - This decodes the shuffle masks for shufp*. VT indicates the type of the vector allowing it to handle different datatypes and vector widths.

Definition at line 183 of file X86ShuffleDecode.cpp.

References llvm::MVT::getSizeInBits(), llvm::MVT::getVectorNumElements(), and llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

int64_t llvm::decodeSLEB128 ( const uint8_t *  p,
unsigned n = nullptr 
)
inline

Utility function to decode a SLEB128 value.

Definition at line 94 of file LEB128.h.

uint64_t llvm::decodeULEB128 ( const uint8_t *  p,
unsigned n = nullptr 
)
inline
void llvm::DecodeUNPCKHMask ( MVT  VT,
SmallVectorImpl< int > &  ShuffleMask 
)

DecodeUNPCKHMask - This decodes the shuffle masks for unpckhps/unpckhpd and punpckh*. VT indicates the type of the vector allowing it to handle different datatypes and vector widths.

Definition at line 205 of file X86ShuffleDecode.cpp.

References llvm::MVT::getSizeInBits(), llvm::MVT::getVectorNumElements(), and llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

void llvm::DecodeUNPCKLMask ( MVT  VT,
SmallVectorImpl< int > &  ShuffleMask 
)

DecodeUNPCKLMask - This decodes the shuffle masks for unpcklps/unpcklpd and punpckl*. VT indicates the type of the vector allowing it to handle different datatypes and vector widths.

Definition at line 225 of file X86ShuffleDecode.cpp.

References llvm::MVT::getSizeInBits(), llvm::MVT::getVectorNumElements(), and llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

void llvm::DecodeVPERM2X128Mask ( MVT  VT,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)
void llvm::DecodeVPERMILPMask ( const Constant *  C,
SmallVectorImpl< int > &  ShuffleMask 
)
void llvm::DecodeVPERMMask ( unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)

DecodeVPERMMask - this decodes the shuffle masks for VPERMQ/VPERMPD. No VT provided since it only works on 256-bit, 4 element vectors.

Definition at line 342 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

llvm::DEFINE_INTEGRAL_TYPEBUILDER ( char  )
llvm::DEFINE_INTEGRAL_TYPEBUILDER ( signed  char)
llvm::DEFINE_INTEGRAL_TYPEBUILDER ( unsigned  char)
llvm::DEFINE_INTEGRAL_TYPEBUILDER ( short  )
llvm::DEFINE_INTEGRAL_TYPEBUILDER ( int  )
llvm::DEFINE_INTEGRAL_TYPEBUILDER ( long  )
llvm::DEFINE_INTEGRAL_TYPEBUILDER ( unsigned long  long)
template<typename Container >
void llvm::DeleteContainerPointers ( Container &  C)

For a container of pointers, deletes the pointers and then clears the container.

Definition at line 376 of file STLExtras.h.

References I.

template<typename Container >
void llvm::DeleteContainerSeconds ( Container &  C)

In a container of pairs (usually a map) whose second element is a pointer, deletes the second elements and then clears the container.

Definition at line 385 of file STLExtras.h.

References I.

Referenced by llvm::LLVMContextImpl::~LLVMContextImpl().

void llvm::DeleteDeadBlock ( BasicBlock BB)
bool llvm::DeleteDeadPHIs ( BasicBlock BB,
const TargetLibraryInfo TLI = nullptr 
)

DeleteDeadPHIs - Examine each PHI in the given block and delete it if it is dead. Also recursively delete any operands that become dead as a result. This includes tracing the def-use list from the PHI to see if it is ultimately unused or if it reaches an unused cycle. Return true if any PHIs were deleted.

DeleteDeadPHIs - Examine each PHI in the given block and delete it if it is dead. Also recursively delete any operands that become dead as a result. This includes tracing the def-use list from the PHI to see if it is ultimately unused or if it reaches an unused cycle.

Definition at line 98 of file BasicBlockUtils.cpp.

References llvm::BasicBlock::begin(), dyn_cast(), I, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), RecursivelyDeleteDeadPHINode(), and llvm::SmallVectorTemplateCommon< T >::size().

template<class T >
void llvm::deleter ( T Ptr)
inline

Definition at line 204 of file STLExtras.h.

AllocaInst * llvm::DemotePHIToStack ( PHINode P,
Instruction AllocaPoint = nullptr 
)

DemotePHIToStack - This function takes a virtual register computed by a phi node and replaces it with a slot in the stack frame, allocated via alloca. The phi node is deleted and it returns the pointer to the alloca inserted.

DemotePHIToStack - This function takes a virtual register computed by a PHI node and replaces it with a slot in the stack frame allocated via alloca. The PHI node is deleted. It returns the pointer to the alloca inserted.

Definition at line 110 of file DemoteRegToStack.cpp.

References assert(), llvm::BasicBlock::begin(), llvm::Instruction::eraseFromParent(), F(), llvm::Function::getEntryBlock(), llvm::PHINode::getIncomingBlock(), llvm::PHINode::getIncomingValue(), llvm::Value::getName(), llvm::PHINode::getNumIncomingValues(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), P, llvm::Value::replaceAllUsesWith(), and llvm::Value::use_empty().

AllocaInst * llvm::DemoteRegToStack ( Instruction I,
bool  VolatileLoads = false,
Instruction AllocaPoint = nullptr 
)

DemoteRegToStack - This function takes a virtual register computed by an Instruction and replaces it with a slot in the stack frame, allocated via alloca. This allows the CFG to be changed around without fear of invalidating the SSA information for the value. It returns the pointer to the alloca inserted to create a stack slot for X.

DemoteRegToStack - This function takes a virtual register computed by an Instruction and replaces it with a slot in the stack frame, allocated via alloca. This allows the CFG to be changed around without fear of invalidating the SSA information for the value. It returns the pointer to the alloca inserted to create a stack slot for I.

Definition at line 24 of file DemoteRegToStack.cpp.

References assert(), llvm::BasicBlock::begin(), llvm::Instruction::eraseFromParent(), F(), llvm::Function::getEntryBlock(), llvm::BasicBlock::getFirstInsertionPt(), llvm::Value::getName(), llvm::InvokeInst::getNormalDest(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getSinglePredecessor(), GetSuccessorNumber(), llvm::Value::getType(), I, isCriticalEdge(), Loads, llvm::User::replaceUsesOfWith(), SplitCriticalEdge(), llvm::Value::use_empty(), and llvm::Instruction::user_back().

template<class T >
iterator_range<df_iterator<T> > llvm::depth_first ( const T G)

Definition at line 213 of file DepthFirstIterator.h.

References df_begin(), and df_end().

Referenced by llvm::LoopBase< N, M >::verifyLoop().

template<class T , class SetTy >
iterator_range<df_ext_iterator<T, SetTy> > llvm::depth_first_ext ( const T G,
SetTy S 
)

Definition at line 235 of file DepthFirstIterator.h.

References df_ext_begin(), and df_ext_end().

Referenced by llvm::LiveVariables::runOnMachineFunction().

template<class T >
df_iterator<T> llvm::df_begin ( const T G)
template<class T >
df_iterator<T> llvm::df_end ( const T G)
template<class T , class SetTy >
df_ext_iterator<T, SetTy> llvm::df_ext_begin ( const T G,
SetTy S 
)
template<class T , class SetTy >
df_ext_iterator<T, SetTy> llvm::df_ext_end ( const T G,
SetTy S 
)
template<class GraphT >
unsigned llvm::DFSPass ( DominatorTreeBase< typename GraphT::NodeType > &  DT,
typename GraphT::NodeType *  V,
unsigned  N 
)
int llvm::DiffFilesWithTolerance ( StringRef  NameA,
StringRef  NameB,
double  AbsTol,
double  RelTol,
std::string *  Error = nullptr 
)

DiffFilesWithTolerance - Compare the two files specified, returning 0 if the files match, 1 if they are different, and 2 if there is a file error. This function allows you to specify an absolute and relative FP error that is allowed to exist. If you specify a string to fill in for the error option, it will set the string to an error message if an error occurs, or if the files are different.

DiffFilesWithTolerance - Compare the two files specified, returning 0 if the files match, 1 if they are different, and 2 if there is a file error. This function differs from DiffFiles in that you can specify an absolete and relative FP error that is allowed to exist. If you specify a string to fill in for the error option, it will set the string to an error message if an error occurs, allowing the caller to distinguish between a failed diff and a file system error.

Definition at line 173 of file FileUtilities.cpp.

References BackupNumber(), CompareNumbers(), llvm::ErrorOr< T >::get(), llvm::MemoryBuffer::getBufferEnd(), llvm::MemoryBuffer::getBufferSize(), llvm::MemoryBuffer::getBufferStart(), llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFile(), isNumberChar(), and llvm::LibFunc::memcmp.

template<class BlockT , class LoopT >
static void llvm::discoverAndMapSubloop ( LoopT *  L,
ArrayRef< BlockT * >  Backedges,
LoopInfoBase< BlockT, LoopT > *  LI,
DominatorTreeBase< BlockT > &  DomTree 
)
static

Stable LoopInfo Analysis - Build a loop tree using stable iterators so the result does / not depend on use list (block predecessor) order.Discover a subloop with the specified backedges such that: All blocks within this loop are mapped to this loop or a subloop. And all subloops within this loop have their parent loop set to this loop or a subloop.

Definition at line 346 of file LoopInfoImpl.h.

References llvm::ArrayRef< T >::begin(), llvm::LoopInfoBase< N, M >::changeLoopFor(), llvm::ArrayRef< T >::end(), llvm::LoopInfoBase< N, M >::getLoopFor(), and llvm::DominatorTreeBase< N >::isReachableFromEntry().

Referenced by llvm::LoopInfoBase< N, M >::Analyze().

bool llvm::DisplayGraph ( StringRef  Filename,
bool  wait = true,
GraphProgram::Name  program = GraphProgram::DOT 
)
uint64_t llvm::DoubleToBits ( double  Double)
inline

DoubleToBits - This function takes a double and returns the bit equivalent 64-bit integer. Note that copying doubles around changes the bits of NaNs on some hosts, notably x86, so this routine cannot be used if these bits are needed.

Definition at line 511 of file MathExtras.h.

References T.

Referenced by llvm::SIInstrInfo::isInlineConstant().

template<unsigned ElementSize>
void llvm::dump ( const SparseBitVector< ElementSize > &  LHS,
raw_ostream &  out 
)
void llvm::dumpBlock ( Value v,
char *  blockName 
)
void llvm::dumpInst ( Value base,
char *  instName 
)

Definition at line 497 of file NVPTXUtilities.cpp.

References llvm::Value::dump(), getInst(), and I.

void llvm::dumpInstRec ( Value v,
std::set< Instruction * > *  visited 
)

Definition at line 504 of file NVPTXUtilities.cpp.

References I.

Referenced by dumpInstRec().

void llvm::dumpInstRec ( Value v)

Definition at line 520 of file NVPTXUtilities.cpp.

References dumpInstRec().

void llvm::dumpParent ( Value v)

Definition at line 529 of file NVPTXUtilities.cpp.

References F(), and I.

LLVM_DUMP_METHOD void llvm::dumpRegSetPressure ( ArrayRef< unsigned SetPressure,
const TargetRegisterInfo TRI 
)
static void llvm::dumpSectionMemory ( const SectionEntry S,
StringRef  State 
)
static
template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT std::enable_if< !is_simple_type<Y>::value, typename cast_retty<X, const Y>::ret_type>::type llvm::dyn_cast ( const Y Val)
inline

Definition at line 285 of file Casting.h.

Referenced by llvm::GEPOperator::accumulateConstantOffset(), AddAliasScopeMetadata(), AddCombineToVPADDL(), AddPHINodeEntriesForMappedBlock(), AddPredecessorToBlock(), AddReachableCodeToWorklist(), adjustForFNeg(), llvm::X86FrameLowering::adjustForHiPEPrologue(), adjustForLTGFR(), adjustForTestUnderMask(), adjustZeroCmp(), AnalyzeLoadFromClobberingMemInst(), llvm::SelectInst::areInvalidOperands(), llvm::RecordRecTy::baseClassOf(), BuildConstantFromSCEV(), llvm::X86TargetLowering::BuildFILD(), BuildSubAggregate(), cacheAnnotationFromMD(), llvm::EHStreamer::callToNoUnwindFunction(), canBeCheaplyTransformed(), CanEvaluateSExtd(), CanEvaluateShifted(), CanEvaluateShuffled(), CanEvaluateTruncated(), CanEvaluateZExtd(), canExpandBackedgeTakenCount(), canFoldInAddressingMode(), canFoldIVIncExpr(), canIfConvertPHINodes(), CannotBeNegativeZero(), canonicalizeMetadataForValue(), CanPropagatePredecessorsForPHIs(), CanSelectOperandBeMappingIntoPredBlock(), canTrapImpl(), llvm::CastInst::castIsValid(), ChangeVSETULTtoVSETULE(), CheapToScalarize(), CheckAndImm(), checkBoolTestSetCCCombine(), CheckInteger(), CheckOrImm(), CleanupPointerRootUsers(), ClearSubclassDataAfterReassociation(), CloneAliasScopeMetadata(), CloneAndPruneFunctionInto(), CloneLoopBlocks(), CloneNodeWithValues(), CollectAddOperandsWithScales(), CollectInsertionElements(), collectUsesWithPtrTypes(), llvm::InstCombiner::commonPointerCastTransforms(), computeKnownBits(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), ComputeMultiple(), ComputeNumSignBits(), llvm::AMDGPUTargetLowering::ComputeNumSignBitsForTargetNode(), computePointerICmp(), ConnectProlog(), ConstantFoldGetElementPtrImpl(), ConstantFoldInsertElementInstruction(), ConstantFoldInstruction(), ConstantFoldLoadFromConstPtr(), ConstantFoldLoadThroughBitcast(), ConstantFoldSelectInstruction(), ConstantFoldTerminator(), ConstHasGlobalValuePredicate(), contains(), ConvertDebugDeclareToDebugValue(), llvm::TypedInit::convertInitializerBitRange(), llvm::TypedInit::convertInitListSlice(), convertMemSetToLoop(), convertTransferToLoop(), createPHIsForSplitLoopExit(), createReplacementInstr(), decomposeBitTestICmp(), DecomposeGEPExpression(), DecomposeSimpleLinearExpr(), DeleteDeadPHIs(), DemandedBitsLHSMask(), llvm::BitcodeReader::Dematerialize(), llvm::DependenceAnalysis::depends(), detectLog2OfHalf(), llvm::DominatorTree::dominates(), DominatesMergePoint(), llvm::Value::DoPHITranslation(), llvm::mdconst::dyn_extract(), llvm::mdconst::dyn_extract_or_null(), EliminateDuplicatePHINodes(), llvm::HexagonSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::AArch64SelectionDAGInfo::EmitTargetCodeForMemset(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), llvm::SystemZSelectionDAGInfo::EmitTargetCodeForMemset(), EmitVectorComparison(), llvm::ARMAsmPrinter::EmitXXStructor(), EraseTerminatorInstAndDCECond(), llvm::SetTheory::evaluate(), EvaluateExpression(), evaluateFCmpRelation(), EvaluateGEPOffsetExpression(), evaluateICmpRelation(), EvaluateOperation(), expandDivision(), llvm::ARMTargetLowering::ExpandInlineAsm(), llvm::X86TargetLowering::ExpandInlineAsm(), expandRemainder(), ExtractConstantBytes(), ExtractEquivalentCondition(), extractMallocCall(), ExtractTypeInfo(), FindInitTrampoline(), FindInitTrampolineFromAlloca(), FindLoopCounter(), llvm::SelectionDAGBuilder::FindMergedConditions(), FindPHIForConditionForwarding(), FindPhiPredForUseInBlock(), llvm::MCAssembler::Finish(), fixupFPReturnAndCall(), llvm::BinOpInit::Fold(), llvm::TernOpInit::Fold(), llvm::InstCombiner::FoldAndOfICmps(), FoldBitCast(), FoldBranchToCommonDest(), llvm::InstCombiner::FoldCmpLoadFromIndexedGlobal(), FoldCondBranchOnPHI(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::InstCombiner::foldFMulConst(), llvm::InstCombiner::FoldICmpShrCst(), foldLogOpOfMaskedICmps(), FoldOperand(), FoldOperationIntoSelectOperand(), llvm::InstCombiner::FoldOrOfICmps(), llvm::InstCombiner::FoldOrWithConstants(), FoldReinterpretLoadFromConstPtr(), foldSelectICmpAnd(), foldSelectICmpAndOr(), llvm::InstCombiner::FoldShiftByConstant(), FoldTwoEntryPHINode(), llvm::InstCombiner::FoldXorWithConstants(), ForeachHelper(), llvm::ScalarEvolution::forgetValue(), genLoopLimit(), GEPToVectorIndex(), llvm::RecordRecTy::get(), llvm::GlobalAlias::getBaseObject(), llvm::CallSiteBase< Function, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::getCalledFunction(), llvm::CallInst::getCalledFunction(), llvm::InvokeInst::getCalledFunction(), getCommonReturnValue(), getConstantEvolvingPHI(), getConstantEvolvingPHIOperands(), getConstantFromPool(), GetConstantInt(), getConstantStringInfo(), llvm::ExecutionEngine::getConstantValue(), llvm::ListInit::getElementAsRecord(), getExactSDiv(), getExtendTypeForNode(), llvm::ConstantInt::getFalse(), llvm::BasicBlock::getFirstNonPHIOrDbgOrLifetime(), getGatherNode(), GetIfCondition(), getIndexedTypeInternal(), getInsertPointForUses(), llvm::SCEVExpander::getIVIncOperand(), llvm::TargetLoweringObjectFile::getKindForGlobal(), getKnownConstant(), llvm::BasicBlock::getLandingPadInst(), getLocForWrite(), getLoopPhiForCounter(), getLoopTest(), llvm::SelectionDAG::getMemcpy(), getMemcpyLoadsAndStores(), llvm::SelectionDAG::getMemmove(), getMemmoveLoadsAndStores(), llvm::SelectionDAG::getMemset(), getMemSetPatternValue(), getMemsetStores(), llvm::ScalarEvolution::getMulExpr(), llvm::VarInit::getName(), llvm::RecordVal::getName(), llvm::Record::getName(), llvm::Mangler::getNameWithPrefix(), getNaturalGEPRecursively(), llvm::SelectionDAG::getNode(), getNoopInput(), llvm::SCEVAddRecExpr::getNumIterationsInRange(), GetOffsetFromIndex(), getOpenCLAlignment(), llvm::ARMBaseInstrInfo::getOperandLatency(), llvm::MemoryDependenceAnalysis::getPointerDependencyFrom(), getPredicateResult(), getPrefetchNode(), getPreStartForSignExtend(), llvm::NVPTXTargetLowering::getPrototype(), llvm::Constant::getRelocationInfo(), getScatterNode(), getShuffleAndOtherOprd(), llvm::ScalarEvolution::getSignExtendExpr(), llvm::ScalarEvolution::getSmallConstantTripCount(), llvm::ScalarEvolution::getSmallConstantTripMultiple(), llvm::DependenceAnalysis::getSplitIteration(), llvm::SparcTargetLowering::getSRetArgSize(), getStrideFromPointer(), getTargetShuffleMask(), llvm::BasicBlock::getTerminatingMustTailCall(), llvm::BasicBlock::getTerminator(), llvm::ConstantInt::getTrue(), getTypeOfMaskedICmp(), getTypePartition(), llvm::ScalarEvolution::getUDivExactExpr(), llvm::ScalarEvolution::getUDivExpr(), getUniqueCastUse(), GetUnrollMetadata(), getValueFromFromCondition(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), getVShiftImm(), getVZextMovL(), getWeakRef(), HandleCallsInBlockInlinedThroughInvoke(), hasComputableBounds(), hasConcreteDefImpl(), hasDefinedInitializer(), HasNoDuplicateCall(), hasReturnsTwiceAttr(), llvm::ARMConstantPoolConstant::hasSameValue(), llvm::ARMConstantPoolSymbol::hasSameValue(), llvm::ARMConstantPoolMBB::hasSameValue(), llvm::FastISel::hasTrivialKill(), HoistThenElseCodeToIf(), llvm::CompositeType::indexValid(), INITIALIZE_PASS(), INITIALIZE_PASS_WITH_OPTIONS(), InlineCallIfPossible(), InlineFunction(), insertVector(), llvm::SSAUpdaterTraits< SSAUpdater >::InstrIsPHI(), InstructionDereferencesPointer(), isAllConstantBuildVector(), isAllOnes(), isAssumeIntrinsic(), isBLACompatibleAddress(), isBSwapHWordElement(), isCalleeLoad(), isChainSelectCmpBranch(), isConstantBuildVectorOrConstantInt(), IsConstantOffsetFromGlobal(), IsConstantOne(), isConstantSplatVector(), llvm::Constant::isConstantUsed(), llvm::TargetLowering::isConstFalseVal(), llvm::TargetLowering::isConstTrueVal(), isConstVecPow2(), llvm::BitcodeReader::isDematerializable(), isDereferenceablePointer(), llvm::Type::isEmptyTy(), isExistingPhi(), isExtendedBUILD_VECTOR(), isFiniteNonZeroFp(), isFMulOrFDivWithConstant(), isFreeCall(), llvm::TargetLowering::isGAPlusOffset(), llvm::ConstantExpr::isGEPWithNoNotionalOverIndexing(), llvm::HexagonTargetObjectFile::IsGlobalInSmallSection(), llvm::MipsTargetObjectFile::IsGlobalInSmallSectionImpl(), isHighCostExpansion(), isImageOrSamplerVal(), llvm::X86Operand::isImmSExti16i8(), llvm::X86Operand::isImmSExti32i8(), llvm::X86Operand::isImmSExti64i32(), llvm::X86Operand::isImmSExti64i8(), isInTailCallPosition(), llvm::ScalarEvolution::isKnownPredicate(), isLikelyComplexAddressComputation(), llvm::ScalarEvolution::isLoopBackedgeGuardedByCond(), llvm::ScalarEvolution::isLoopEntryGuardedByCond(), isLoopInvariant(), IsMaxConsistingOf(), isNaturalMemoryOperand(), llvm::SCEV::isNonConstantNegative(), isNormalFp(), llvm::ISD::isNormalLoad(), llvm::ISD::isNormalStore(), isOnlyCopiedFromConstantGlobal(), IsPointerOffset(), isPositiveHalfWord(), llvm::PHITransAddr::IsPotentiallyPHITranslatable(), llvm::objcarc::IsPotentialRetainableObjPtr(), isProfitableToFoldUnconditional(), llvm::DominatorTree::isReachableFromEntry(), isReportingError(), isSafePHIToSpeculate(), isSafeSelectToSpeculate(), isSafeSROAElementUse(), isSafeToHoistInvoke(), isSafeToSpeculateStore(), isSafeToSpeculativelyExecute(), isSameCompare(), isScaledConstantInRange(), isSelect01(), isSetCC(), isSimpleEnoughPointerToCommit(), isSimpleIVUser(), isSimpleShift(), isStridedPtr(), llvm::MCAssembler::isThumbFunc(), isTruncateOf(), isTypeCongruent(), isUndefShift(), llvm::Value::isUsedInBasicBlock(), llvm::Instruction::isUsedOutsideOfBlock(), IsUserOfGlobalSafeForSRA(), llvm::ShuffleVectorInst::isValidOperands(), isVectorAllOnes(), isVSplat(), isXor1OfSetCC(), isZero(), isZeroLengthArray(), isZeroOrAllOnes(), IVUseShouldUsePostIncValue(), llvm::ARMTargetLowering::LowerAsmOperandForConstraint(), llvm::PPCTargetLowering::LowerAsmOperandForConstraint(), llvm::TargetLowering::LowerAsmOperandForConstraint(), llvm::NVPTXTargetLowering::LowerCall(), llvm::AsmPrinter::lowerConstant(), LowerF128Load(), LowerF128Store(), llvm::SITargetLowering::LowerFormalArguments(), LowerScalarImmediateShift(), LowerScalarVariableShift(), llvm::IntrinsicLowering::LowerToByteSwap(), lowerVectorShuffleAsBroadcast(), LowerXOR(), LowerZERO_EXTEND_AVX512(), MaintainNoSignedWrap(), MapValue(), llvm::PatternMatch::specific_intval::match(), llvm::PatternMatch::MaxMin_match< CmpInst_t, LHS_t, RHS_t, Pred_t >::match(), MatchingStackOffset(), MatchNotExpr(), matchPairwiseReduction(), matchPairwiseReductionAtLevel(), matchRotateSub(), MatchSelectPattern(), matchVectorSplittingReduction(), llvm::BitcodeReader::materialize(), memAddrUsesCTR(), mergeEmptyReturnBlocks(), needsLFTR(), onlyUsedByLifetimeMarkers(), llvm::LibCallSimplifier::optimizeCall(), OptimizeGlobalAddressOfMalloc(), llvm::TargetLowering::ParseConstraints(), passingValueIsAlwaysUndefined(), patchReplacementInstruction(), performANDCombine(), PerformANDCombine(), PerformAndCombine(), PerformBFICombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), llvm::SystemZTargetLowering::PerformDAGCombine(), performDSPShiftCombine(), PerformMULCombine(), PerformMulCombine(), PerformORCombine(), PerformOrCombine(), performSELECTCombine(), PerformSHLCombine(), performSRACombine(), PerformZExtCombine(), llvm::AArch64InstPrinter::printAlignedLabel(), printExpr(), llvm::X86IntelInstPrinter::printPCRelImm(), llvm::X86ATTInstPrinter::printPCRelImm(), llvm::DebugInfoFinder::processDeclare(), ProcessUAddIdiom(), ProcessUGT_ADDCST_ADD(), llvm::DebugInfoFinder::processValue(), llvm::ListInit::Profile(), promoteSingleBlockAlloca(), PushLoopPHIs(), QualifyName(), RecognizePersonality(), RecursivelyDeleteTriviallyDeadInstructions(), llvm::Constant::removeDeadConstantUsers(), removeDeadUsersOfConstant(), RemoveInstInputs(), llvm::BasicBlock::removePredecessor(), removeUndefIntroducingPredecessor(), ReorganizeVector(), llvm::SCEVExpander::replaceCongruentIVs(), replaceConstantExprOp(), llvm::LoopInfo::replacementPreservesLCSSAForm(), llvm::BasicBlock::replaceSuccessorsPhiUsesWith(), llvm::Value::replaceUsesOutsideBlock(), llvm::ReplaceableMetadataImpl::resolveAllUses(), llvm::OpInit::resolveListElementReference(), llvm::VarInit::resolveListElementReference(), llvm::TernOpInit::resolveReferences(), reuseTableCompare(), rewriteNonInstructionUses(), RewriteUsesOfClonedInstructions(), llvm::NVPTXLowerAggrCopies::runOnFunction(), llvm::NVPTXAllocaHoisting::runOnFunction(), llvm::ExecutionEngine::runStaticConstructorsDestructors(), safeCxtI(), ScalarizeMaskedLoad(), ScalarizeMaskedStore(), selectCCOpsAreFMaxCompatible(), llvm::FastISel::selectExtractValue(), llvm::FunctionLoweringInfo::set(), SetLoopAlreadyUnrolled(), shouldConvertUse(), shouldSwapCmpOperands(), ShrinkDemandedConstant(), llvm::TargetLowering::TargetLoweringOpt::ShrinkDemandedConstant(), SimplifyAssociativeBinOp(), SimplifyBranchOnICmpChain(), SimplifyCall(), SimplifyCondBranchToCondBranch(), llvm::TargetLowering::SimplifyDemandedBits(), SimplifyICmpInst(), SimplifyIndirectBrOnSelect(), simplifyOneLoop(), SimplifyOrInst(), llvm::InstCombiner::simplifyRangeCheck(), SimplifySelectInst(), simplifyShuffleOperandRecursively(), SimplifySwitchOnSelect(), SimplifyWithOpReplaced(), SinkShiftAndTruncate(), SinkThenElseCodeToEnd(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), SolveQuadraticEquation(), SpeculativelyExecuteBB(), llvm::BasicBlock::splitBasicBlock(), SplitCriticalSideEffectEdges(), llvm::DbgInfoIntrinsic::StripCast(), stripGetElementPtr(), swapMayExposeCSEOpportunities(), SymbolicallyEvaluateGEP(), ThreadBinOpOverSelect(), tryCombineCRC32(), tryCombineToBSL(), tryLowerToSLI(), TryMULWIDECombine(), tryPromoteAllocaToVector(), TryToOptimizeStoreOfMallocToGlobal(), TryToSimplifyUncondBranchWithICmpInIt(), UnrollLoop(), UpdateCallGraphAfterInlining(), upgradeGlobalArray(), llvm::yaml::MappingTraits< std::unique_ptr< ELFYAML::Section > >::validate(), ValueDominatesPHI(), llvm::ValueEnumerator::ValueEnumerator(), llvm::SSAUpdaterTraits< SSAUpdater >::ValueIsPHI(), llvm::InlineAsm::Verify(), VerifySubExpr(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAllocaInst(), llvm::InstCombiner::visitAnd(), llvm::InstCombiner::visitCallInst(), llvm::ObjectSizeOffsetVisitor::visitCallSite(), llvm::InstCombiner::visitFAdd(), llvm::InstCombiner::visitFCmpInst(), llvm::InstCombiner::visitFMul(), llvm::InstCombiner::visitFPToSI(), llvm::InstCombiner::visitFPToUI(), llvm::InstCombiner::visitFPTrunc(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::InstCombiner::visitICmpInst(), llvm::InstCombiner::visitICmpInstWithCastAndCast(), llvm::InstCombiner::visitICmpInstWithInstAndIntCst(), llvm::InstCombiner::visitInsertValueInst(), llvm::InstCombiner::visitLandingPadInst(), llvm::InstCombiner::visitMul(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitSelectInstWithICmp(), llvm::InstCombiner::visitShuffleVectorInst(), llvm::InstCombiner::visitXor(), and llvm::InstCombiner::visitZExt().

template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT cast_retty<X, Y>::ret_type llvm::dyn_cast ( Y Val)
inline

Definition at line 291 of file Casting.h.

template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT cast_retty<X, Y *>::ret_type llvm::dyn_cast ( Y Val)
inline

Definition at line 297 of file Casting.h.

template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT std::enable_if< !is_simple_type<Y>::value, typename cast_retty<X, const Y>::ret_type>::type llvm::dyn_cast_or_null ( const Y Val)
inline

Definition at line 307 of file Casting.h.

template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT std::enable_if< !is_simple_type<Y>::value, typename cast_retty<X, Y>::ret_type>::type llvm::dyn_cast_or_null ( Y Val)
inline

Definition at line 314 of file Casting.h.

template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT cast_retty<X, Y *>::ret_type llvm::dyn_cast_or_null ( Y Val)
inline

Definition at line 320 of file Casting.h.

bool llvm::EliminateDuplicatePHINodes ( BasicBlock BB)
static void llvm::EmitAbsDifference ( MCStreamer &  Streamer,
const MCSymbol *  LHS,
const MCSymbol *  RHS 
)
static
bool llvm::EmitAnyX86InstComments ( const MCInst MI,
raw_ostream OS,
const char *(*)(unsigned getRegName 
)
void llvm::emitARMRegPlusImmediate ( MachineBasicBlock MBB,
MachineBasicBlock::iterator MBBI,
DebugLoc  dl,
unsigned  DestReg,
unsigned  BaseReg,
int  NumBytes,
ARMCC::CondCodes  Pred,
unsigned  PredReg,
const ARMBaseInstrInfo TII,
unsigned  MIFlags = 0 
)
Value * llvm::EmitBinaryFloatFnCall ( Value Op1,
Value Op2,
StringRef  Name,
IRBuilder<> &  B,
const AttributeSet Attrs 
)

EmitUnaryFloatFnCall - Emit a call to the binary function named 'Name' (e.g. 'fmin'). This function is known to take type matching 'Op1' and 'Op2' and return one value with the same type. If 'Op1/Op2' are long double, 'l' is added as the suffix of name, if 'Op1/Op2' are float, we add a 'f' suffix.

EmitBinaryFloatFnCall - Emit a call to the binary function named 'Name' (e.g. 'fmin'). This function is known to take type matching 'Op1' and 'Op2' and return one value with the same type. If 'Op1/Op2' are long double, 'l' is added as the suffix of name, if 'Op1/Op2' is a float, we add a 'f' suffix.

Definition at line 324 of file BuildLibCalls.cpp.

References AppendTypeSuffix(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall2(), F(), llvm::IRBuilderBase::GetInsertBlock(), llvm::Module::getOrInsertFunction(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Value::getType(), llvm::CallInst::setAttributes(), llvm::CallInst::setCallingConv(), and llvm::Value::stripPointerCasts().

Value * llvm::EmitFPutC ( Value Char,
Value File,
IRBuilder<> &  B,
const DataLayout TD,
const TargetLibraryInfo TLI 
)
Value * llvm::EmitFPutS ( Value Str,
Value File,
IRBuilder<> &  B,
const DataLayout TD,
const TargetLibraryInfo TLI 
)
void llvm::emitFrameOffset ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  MBBI,
DebugLoc  DL,
unsigned  DestReg,
unsigned  SrcReg,
int  Offset,
const TargetInstrInfo TII,
MachineInstr::MIFlag  Flag = MachineInstr::NoFlags,
bool  SetNZCV = false 
)

emitFrameOffset - Emit instructions as needed to set DestReg to SrcReg plus Offset. This is intended to be used from within the prolog/epilog insertion (PEI) pass, where a virtual scratch register may be allocated if necessary, to be replaced by the scavenger at the end of PEI.

Definition at line 2014 of file AArch64InstrInfo.cpp.

References llvm::MachineInstrBuilder::addImm(), assert(), BuildMI(), llvm::MCInstrInfo::get(), llvm::AArch64_AM::getShifterImm(), llvm::AArch64_AM::LSL, and llvm::MachineInstrBuilder::setMIFlag().

Referenced by llvm::AArch64FrameLowering::eliminateCallFramePseudoInstr(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), and rewriteAArch64FrameIndex().

Value * llvm::EmitFWrite ( Value Ptr,
Value Size,
Value File,
IRBuilder<> &  B,
const DataLayout TD,
const TargetLibraryInfo TLI 
)
template<typename IRBuilderTy >
Value* llvm::EmitGEPOffset ( IRBuilderTy *  Builder,
const DataLayout &  TD,
User *  GEP,
bool  NoAssumptions = false 
)

EmitGEPOffset - Given a getelementptr instruction/constantexpr, emit the code necessary to compute the offset from the base pointer (without adding in the base pointer). Return the result as a signed integer of intptr size. When NoAssumptions is true, no assumptions about index computation not overflowing is made.

Definition at line 197 of file Local.h.

References gep_type_begin(), llvm::ConstantInt::get(), llvm::StructLayout::getElementOffset(), llvm::ConstantExpr::getIntegerCast(), llvm::DataLayout::getIntPtrType(), llvm::ConstantExpr::getMul(), llvm::Value::getName(), llvm::Constant::getNullValue(), llvm::DataLayout::getStructLayout(), llvm::Value::getType(), llvm::DataLayout::getTypeAllocSize(), llvm::GEPOperator::isInBounds(), llvm::SystemZISD::OC, llvm::User::op_begin(), and llvm::User::op_end().

Referenced by llvm::InstCombiner::FoldGEPICmp(), llvm::InstCombiner::OptimizePointerDifference(), and llvm::ObjectSizeOffsetEvaluator::visitGEPOperator().

static void llvm::EmitLabelDiff ( MCStreamer &  Streamer,
const MCSymbol *  From,
const MCSymbol *  To,
unsigned int  Size = 4 
)
static
void llvm::emitLoopInterleaveWarning ( LLVMContext Ctx,
const Function Fn,
const DebugLoc DLoc,
const Twine Msg 
)

Emit a warning when loop interleaving is specified but fails. Fn is the function triggering the warning, DLoc is the debug location where the diagnostic is generated. Msg is the message string to use.

Definition at line 205 of file DiagnosticInfo.cpp.

References llvm::LLVMContext::diagnose().

void llvm::emitLoopVectorizeWarning ( LLVMContext Ctx,
const Function Fn,
const DebugLoc DLoc,
const Twine Msg 
)

Emit a warning when loop vectorization is specified but fails. Fn is the function triggering the warning, DLoc is the debug location where the diagnostic is generated. Msg is the message string to use.

Definition at line 199 of file DiagnosticInfo.cpp.

References llvm::LLVMContext::diagnose().

Value * llvm::EmitMemChr ( Value Ptr,
Value Val,
Value Len,
IRBuilder<> &  B,
const DataLayout TD,
const TargetLibraryInfo TLI 
)
Value * llvm::EmitMemCmp ( Value Ptr1,
Value Ptr2,
Value Len,
IRBuilder<> &  B,
const DataLayout TD,
const TargetLibraryInfo TLI 
)
Value * llvm::EmitMemCpyChk ( Value Dst,
Value Src,
Value Len,
Value ObjSize,
IRBuilder<> &  B,
const DataLayout TD,
const TargetLibraryInfo TLI 
)
void llvm::emitOptimizationRemark ( LLVMContext Ctx,
const char *  PassName,
const Function Fn,
const DebugLoc DLoc,
const Twine Msg 
)

Emit an optimization-applied message. PassName is the name of the pass emitting the message. If -Rpass= is given and PassName matches the regular expression in -Rpass, then the remark will be emitted. Fn is the function triggering the remark, DLoc is the debug location where the diagnostic is generated. Msg is the message string to use.

Definition at line 172 of file DiagnosticInfo.cpp.

References llvm::LLVMContext::diagnose().

Referenced by llvm::Inliner::runOnSCC(), and UnrollLoop().

void llvm::emitOptimizationRemarkAnalysis ( LLVMContext Ctx,
const char *  PassName,
const Function Fn,
const DebugLoc DLoc,
const Twine Msg 
)

Emit an optimization analysis remark message. PassName is the name of the pass emitting the message. If -Rpass-analysis= is given and PassName matches the regular expression in -Rpass, then the remark will be emitted. Fn is the function triggering the remark, DLoc is the debug location where the diagnostic is generated. Msg is the message string to use.

Definition at line 185 of file DiagnosticInfo.cpp.

References llvm::LLVMContext::diagnose().

Referenced by emitAnalysis().

void llvm::emitOptimizationRemarkMissed ( LLVMContext Ctx,
const char *  PassName,
const Function Fn,
const DebugLoc DLoc,
const Twine Msg 
)

Emit an optimization-missed message. PassName is the name of the pass emitting the message. If -Rpass-missed= is given and PassName matches the regular expression in -Rpass, then the remark will be emitted. Fn is the function triggering the remark, DLoc is the debug location where the diagnostic is generated. Msg is the message string to use.

Definition at line 178 of file DiagnosticInfo.cpp.

References llvm::LLVMContext::diagnose().

Referenced by llvm::Inliner::runOnSCC().

Value * llvm::EmitPutChar ( Value Char,
IRBuilder<> &  B,
const DataLayout TD,
const TargetLibraryInfo TLI 
)
Value * llvm::EmitPutS ( Value Str,
IRBuilder<> &  B,
const DataLayout TD,
const TargetLibraryInfo TLI 
)
static void llvm::EmitRuntimeFunction ( MCStreamer &  streamer,
const WinEH::FrameInfo *  info 
)
static
void llvm::emitSourceFileHeader ( StringRef  Desc,
raw_ostream OS 
)

emitSourceFileHeader - Output an LLVM style file header to the specified raw_ostream.

Definition at line 35 of file TableGenBackend.cpp.

References MAX_LINE_LEN, llvm::cl::Prefix, printLine(), llvm::StringRef::size(), and llvm::StringRef::slice().

Value * llvm::EmitStrChr ( Value Ptr,
char  C,
IRBuilder<> &  B,
const DataLayout TD,
const TargetLibraryInfo TLI 
)
Value * llvm::EmitStrCpy ( Value Dst,
Value Src,
IRBuilder<> &  B,
const DataLayout TD,
const TargetLibraryInfo TLI,
StringRef  Name = "strcpy" 
)
Value * llvm::EmitStrLen ( Value Ptr,
IRBuilder<> &  B,
const DataLayout TD,
const TargetLibraryInfo TLI 
)

EmitStrLen - Emit a call to the strlen function to the builder, for the specified pointer. Ptr is required to be some pointer type, and the return value has 'intptr_t' type.

EmitStrLen - Emit a call to the strlen function to the builder, for the specified pointer. This always returns an integer value of size intptr_t.

Definition at line 36 of file BuildLibCalls.cpp.

References CastToCStr(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall(), F(), llvm::AttributeSet::FunctionIndex, llvm::BasicBlock::getContext(), llvm::Module::getContext(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::DataLayout::getIntPtrType(), llvm::Module::getOrInsertFunction(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::TargetLibraryInfo::has(), llvm::Attribute::NoCapture, llvm::Attribute::NoUnwind, llvm::Attribute::ReadOnly, llvm::CallInst::setCallingConv(), llvm::Constant::stripPointerCasts(), and llvm::LibFunc::strlen.

Value * llvm::EmitStrNCmp ( Value Ptr1,
Value Ptr2,
Value Len,
IRBuilder<> &  B,
const DataLayout TD,
const TargetLibraryInfo TLI 
)
Value * llvm::EmitStrNCpy ( Value Dst,
Value Src,
Value Len,
IRBuilder<> &  B,
const DataLayout TD,
const TargetLibraryInfo TLI,
StringRef  Name = "strncpy" 
)
Value * llvm::EmitStrNLen ( Value Ptr,
Value MaxLen,
IRBuilder<> &  B,
const DataLayout TD,
const TargetLibraryInfo TLI 
)
static void llvm::EmitSymbolRefWithOfs ( MCStreamer &  streamer,
const MCSymbol *  Base,
const MCSymbol *  Other 
)
static
void llvm::emitT2RegPlusImmediate ( MachineBasicBlock MBB,
MachineBasicBlock::iterator MBBI,
DebugLoc  dl,
unsigned  DestReg,
unsigned  BaseReg,
int  NumBytes,
ARMCC::CondCodes  Pred,
unsigned  PredReg,
const ARMBaseInstrInfo TII,
unsigned  MIFlags = 0 
)
void llvm::emitThumbRegPlusImmediate ( MachineBasicBlock MBB,
MachineBasicBlock::iterator MBBI,
DebugLoc  dl,
unsigned  DestReg,
unsigned  BaseReg,
int  NumBytes,
const TargetInstrInfo TII,
const ARMBaseRegisterInfo MRI,
unsigned  MIFlags = 0 
)

emitThumbRegPlusImmediate - Emits a series of instructions to materialize a destreg = basereg + immediate in Thumb code. Tries a series of ADDs or SUBs first, and uses a constant pool value if the instruction sequence would be too long. This is allowed to modify the condition flags.

Definition at line 148 of file Thumb1RegisterInfo.cpp.

References AddDefaultPred(), AddDefaultT1CC(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), assert(), BuildMI(), emitThumbRegPlusImmInReg(), llvm::MCInstrInfo::get(), isARMLowRegister(), llvm::RegState::Kill, RoundUpToAlignment(), llvm::MachineInstrBuilder::setMIFlags(), and Threshold.

Referenced by llvm::Thumb1RegisterInfo::eliminateFrameIndex(), llvm::Thumb1FrameLowering::emitEpilogue(), emitSPUpdate(), and llvm::Thumb1RegisterInfo::rewriteFrameIndex().

Value * llvm::EmitUnaryFloatFnCall ( Value Op,
StringRef  Name,
IRBuilder<> &  B,
const AttributeSet Attrs 
)

EmitUnaryFloatFnCall - Emit a call to the unary function named 'Name' (e.g. 'floor'). This function is known to take a single of type matching 'Op' and returns one value with the same type. If 'Op' is a long double, 'l' is added as the suffix of name, if 'Op' is a float, we add a 'f' suffix.

Definition at line 303 of file BuildLibCalls.cpp.

References AppendTypeSuffix(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall(), F(), llvm::IRBuilderBase::GetInsertBlock(), llvm::Module::getOrInsertFunction(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Value::getType(), llvm::CallInst::setAttributes(), llvm::CallInst::setCallingConv(), and llvm::Value::stripPointerCasts().

static void llvm::EmitUnwindCode ( MCStreamer &  streamer,
const MCSymbol *  begin,
WinEH::Instruction &  inst 
)
static
static void llvm::EmitUnwindInfo ( MCStreamer &  streamer,
WinEH::FrameInfo *  info 
)
static
void llvm::EnablePrettyStackTrace ( )
void llvm::EnableStatistics ( )

Enable the collection and printing of statistics.

Definition at line 92 of file Statistic.cpp.

References Enabled.

static int llvm::encode_leb128 ( uint64_t  val,
int *  nbytes,
char *  space,
int  splen 
)
static

Definition at line 36 of file NVPTXutil.cpp.

References DATA_MASK, DIGIT_WIDTH, llvm::sys::path::end(), and MORE_BYTES.

Referenced by encode_leb128().

uint64_t llvm::encode_leb128 ( const char *  str)

Definition at line 61 of file NVPTXutil.cpp.

References assert(), encode_leb128(), and llvm::LibFunc::strlen.

void llvm::encodeSLEB128 ( int64_t  Value,
raw_ostream &  OS 
)
inline

Utility function to encode a SLEB128 value to an output stream.

Definition at line 23 of file LEB128.h.

Referenced by llvm::MCStreamer::EmitSLEB128IntValue(), and llvm::MCDwarfLineAddr::Encode().

void llvm::encodeULEB128 ( uint64_t  Value,
raw_ostream &  OS,
unsigned  Padding = 0 
)
inline
unsigned llvm::encodeULEB128 ( uint64_t  Value,
uint8_t *  p,
unsigned  Padding = 0 
)
inline

Utility function to encode a ULEB128 value to a buffer. Returns the length in bytes of the encoded value.

Definition at line 58 of file LEB128.h.

raw_ostream & llvm::errs ( )

errs() - This returns a reference to a raw_ostream for standard error. Use it like: errs() << "foo" << "bar";

Definition at line 714 of file raw_ostream.cpp.

Referenced by llvm::MipsTargetMachine::addAnalysisPasses(), llvm::Interpreter::callExternalFunction(), CheckBitcodeOutputToConsole(), checkForCyclesHelper(), llvm::SelectionDAG::clearGraphAttrs(), CrashHandler(), llvm::EngineBuilder::create(), createDependencyFile(), createGraphFilename(), CreateInfoOutputFile(), dbgs(), llvm::LLVMContext::diagnose(), DisplayGraph(), llvm::SubMultiClassReference::dump(), llvm::RecTy::dump(), llvm::opt::Arg::dump(), llvm::ARMConstantPoolValue::dump(), llvm::MCFragment::dump(), llvm::opt::Option::dump(), llvm::Init::dump(), llvm::MCSectionData::dump(), llvm::LiveRangeUpdater::dump(), llvm::MCSymbolData::dump(), llvm::MCAssembler::dump(), llvm::RecordVal::dump(), llvm::Record::dump(), llvm::MultiClass::dump(), llvm::RecordKeeper::dump(), dumpDataAux(), llvm::RGPassManager::dumpPassStructure(), llvm::LPPassManager::dumpPassStructure(), llvm::DWARFContextInMemory::DWARFContextInMemory(), llvm::XCoreFrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::MipsRegisterInfo::eliminateFrameIndex(), llvm::AMDGPUAsmPrinter::EmitInstruction(), llvm::MCStreamer::EmitRawTextImpl(), llvm::cl::Option::error(), ExecGraphViewer(), ferrs(), llvm::MCAssembler::Finish(), llvm::SubtargetFeatures::getFeatureBits(), llvm::SelectionDAG::getGraphAttrs(), GetOptionInfo(), llvm::MCSubtargetInfo::getSchedModelForCPU(), llvm::LeakDetectorImpl< llvm::Metadata >::hasGarbage(), Help(), INITIALIZE_PASS(), lle_X_sprintf(), LLVMSetLinkage(), LLVMVerifyFunction(), LLVMVerifyModule(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::MipsSubtarget::MipsSubtarget(), llvm::PluginLoader::operator=(), OptimizeGlobalAddressOfMalloc(), llvm::DWARFDebugLoc::parse(), llvm::DWARFDebugLocDWO::parse(), llvm::cl::ParseCommandLineOptions(), llvm::PassNameParser::passRegistered(), llvm::PrinterTrait< T >::print(), llvm::PrinterTrait< Value >::print(), llvm::PrinterTrait< Metadata >::print(), llvm::detail::printBumpPtrAllocatorStats(), PrintError(), PrintLoadStoreResults(), llvm::SourceMgr::PrintMessage(), PrintModRefResults(), PrintPercent(), PrintRecyclerStats(), PrintResults(), PrintWarning(), llvm::GCOVFile::readGCDA(), llvm::GCOVFunction::readGCDA(), llvm::GCOVBuffer::readGCDAFormat(), llvm::GCOVFunction::readGCNO(), llvm::GCOVBuffer::readGCNOFormat(), llvm::GCOVBuffer::readGCOVVersion(), llvm::GCOVBuffer::readInt(), llvm::GCOVBuffer::readString(), llvm::GenericScheduler::registerRoots(), llvm::PostGenericScheduler::registerRoots(), removeUseSoftFloat(), llvm::DOTGraphTraitsPrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnFunction(), llvm::MipsModuleDAGToDAGISel::runOnMachineFunction(), llvm::Mips16HardFloat::runOnModule(), llvm::DOTGraphTraitsModulePrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnModule(), llvm::SelectionDAG::setGraphAttrs(), llvm::SelectionDAG::setGraphColor(), llvm::SelectionDAG::setSubgraphColor(), TableGenMain(), llvm::SubtargetFeatures::ToggleFeature(), llvm::PHITransAddr::Verify(), llvm::DominatorTree::verifyDomTree(), VerifySubExpr(), llvm::MachineRegisterInfo::verifyUseList(), llvm::BlockFrequencyInfo::view(), llvm::MachineBlockFrequencyInfo::view(), llvm::MachineFunction::viewCFG(), llvm::MachineFunction::viewCFGOnly(), llvm::SelectionDAG::viewGraph(), llvm::ScheduleDAGMI::viewGraph(), llvm::ScheduleDAG::viewGraph(), llvm::Interpreter::visitInstruction(), WriteGraph(), and llvm::yaml::yamlize().

template<class GraphT >
GraphT::NodeType* llvm::Eval ( DominatorTreeBase< typename GraphT::NodeType > &  DT,
typename GraphT::NodeType *  VIn,
unsigned  LastLinked 
)
bool llvm::expandDivision ( BinaryOperator Div)

Replace Div with generated code.

Generate code to divide two integers, replacing Div with the generated code. This currently generates code similarly to compiler-rt's implementations, but future work includes generating more specialized code when more information about the operands are known. Implements both 32bit and 64bit scalar division.

Definition at line 436 of file IntegerDivision.cpp.

References assert(), llvm::User::dropAllReferences(), dyn_cast(), llvm::Instruction::eraseFromParent(), generateSignedDivisionCode(), generateUnsignedDivisionCode(), llvm::IRBuilderBase::GetInsertPoint(), llvm::Type::getIntegerBitWidth(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::isVectorTy(), llvm_unreachable, and llvm::Value::replaceAllUsesWith().

Referenced by expandDivisionUpTo32Bits(), expandDivisionUpTo64Bits(), and expandRemainder().

bool llvm::expandDivisionUpTo32Bits ( BinaryOperator Div)

Replace Rem with generated code.

Replace Div with emulation code.

Generate code to divide two integers, replacing Div with the generated code. Uses ExpandDivision with a 32bit Div which makes it useful for targets with little or no support for less than 32 bit arithmetic.

Generate code to divide two integers of bitwidth up to 32 bits. Uses the above routines and extends the inputs/truncates the outputs to operate in 32 bits; that is, these routines are good for targets that have no or very little support for smaller than 32 bit integer arithmetic.

Definition at line 590 of file IntegerDivision.cpp.

References assert(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateSDiv(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateSExt(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateTrunc(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateUDiv(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateZExt(), llvm::User::dropAllReferences(), llvm::Instruction::eraseFromParent(), expandDivision(), llvm::IRBuilderBase::getInt32Ty(), llvm::Type::getIntegerBitWidth(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), Int32Ty, llvm::Type::isVectorTy(), llvm_unreachable, and llvm::Value::replaceAllUsesWith().

bool llvm::expandDivisionUpTo64Bits ( BinaryOperator Div)
bool llvm::expandRemainder ( BinaryOperator Rem)

Replace Rem with generated code.

Generate code to calculate the remainder of two integers, replacing Rem with the generated code. This currently generates code using the udiv expansion, but future work includes generating more specialized code, e.g. when more information about the operands are known. Implements both 32bit and 64bit scalar division.

Definition at line 376 of file IntegerDivision.cpp.

References assert(), llvm::User::dropAllReferences(), dyn_cast(), llvm::Instruction::eraseFromParent(), expandDivision(), generatedUnsignedRemainderCode(), generateSignedRemainderCode(), llvm::IRBuilderBase::GetInsertPoint(), llvm::Type::getIntegerBitWidth(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::isVectorTy(), llvm_unreachable, and llvm::Value::replaceAllUsesWith().

Referenced by expandRemainderUpTo32Bits(), and expandRemainderUpTo64Bits().

bool llvm::expandRemainderUpTo32Bits ( BinaryOperator Rem)

Replace Rem with generated code.

Replace Rem with emulation code.

Generate code to calculate the remainder of two integers, replacing Rem with the generated code. Uses ExpandReminder with a 32bit Rem which makes it useful for targets with little or no support for less than 32 bit arithmetic.

Generate code to compute the remainder of two integers of bitwidth up to 32 bits. Uses the above routines and extends the inputs/truncates the outputs to operate in 32 bits; that is, these routines are good for targets that have no or very little suppport for smaller than 32 bit integer arithmetic.

Definition at line 489 of file IntegerDivision.cpp.

References assert(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateSExt(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateSRem(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateTrunc(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateURem(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateZExt(), llvm::User::dropAllReferences(), llvm::Instruction::eraseFromParent(), expandRemainder(), llvm::IRBuilderBase::getInt32Ty(), llvm::Type::getIntegerBitWidth(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), Int32Ty, llvm::Type::isVectorTy(), llvm_unreachable, and llvm::Value::replaceAllUsesWith().

bool llvm::expandRemainderUpTo64Bits ( BinaryOperator Rem)

Replace Rem with generated code.

Replace Rem with emulation code.

Generate code to calculate the remainder of two integers, replacing Rem with the generated code. Uses ExpandReminder with a 64bit Rem.

Generate code to compute the remainder of two integers of bitwidth up to 64 bits. Uses the above routines and extends the inputs/truncates the outputs to operate in 64 bits.

Definition at line 539 of file IntegerDivision.cpp.

References assert(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateSExt(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateSRem(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateTrunc(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateURem(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateZExt(), llvm::User::dropAllReferences(), llvm::Instruction::eraseFromParent(), expandRemainder(), llvm::IRBuilderBase::getInt64Ty(), llvm::Type::getIntegerBitWidth(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::isVectorTy(), llvm_unreachable, and llvm::Value::replaceAllUsesWith().

llvm::EXTERN_TEMPLATE_INSTANTIATION ( class DomTreeNodeBase< MachineBasicBlock >  )
llvm::EXTERN_TEMPLATE_INSTANTIATION ( class DominatorTreeBase< MachineBasicBlock >  )
llvm::EXTERN_TEMPLATE_INSTANTIATION ( class DomTreeNodeBase< BasicBlock >  )
llvm::EXTERN_TEMPLATE_INSTANTIATION ( class DominatorTreeBase< BasicBlock >  )
llvm::EXTERN_TEMPLATE_INSTANTIATION ( void Calculate< Function LLVM_COMMA BasicBlock * >  DominatorTreeBase< GraphTraits< BasicBlock * >::NodeType > &DT LLVM_COMMAFunction &F)
llvm::EXTERN_TEMPLATE_INSTANTIATION ( void Calculate< Function LLVM_COMMA Inverse< BasicBlock * > >  DominatorTreeBase< GraphTraits< Inverse< BasicBlock * > >::NodeType > &DTLLVM_COMMA Function &F)
llvm::EXTERN_TEMPLATE_INSTANTIATION ( class RegionBase< RegionTraits< MachineFunction >>  )
llvm::EXTERN_TEMPLATE_INSTANTIATION ( class RegionNodeBase< RegionTraits< MachineFunction >>  )
llvm::EXTERN_TEMPLATE_INSTANTIATION ( class RegionInfoBase< RegionTraits< MachineFunction >>  )
llvm::EXTERN_TEMPLATE_INSTANTIATION ( class DominanceFrontierBase< BasicBlock >  )
llvm::EXTERN_TEMPLATE_INSTANTIATION ( class ForwardDominanceFrontierBase< BasicBlock >  )
llvm::EXTERN_TEMPLATE_INSTANTIATION ( class RegionBase< RegionTraits< Function >>  )
llvm::EXTERN_TEMPLATE_INSTANTIATION ( class RegionNodeBase< RegionTraits< Function >>  )
llvm::EXTERN_TEMPLATE_INSTANTIATION ( class RegionInfoBase< RegionTraits< Function >>  )
const CallInst * llvm::extractCallocCall ( const Value I,
const TargetLibraryInfo TLI 
)

extractCallocCall - Returns the corresponding CallInst if the instruction is a calloc call.

Definition at line 310 of file MemoryBuiltins.cpp.

References I, and isCallocLikeFn().

Referenced by extractCallocCall().

static CallInst* llvm::extractCallocCall ( Value *  I,
const TargetLibraryInfo *  TLI 
)
inlinestatic

Definition at line 122 of file MemoryBuiltins.h.

References extractCallocCall().

const CallInst * llvm::extractMallocCall ( const Value I,
const TargetLibraryInfo TLI 
)

extractMallocCall - Returns the corresponding CallInst if the instruction is a malloc call. Since CallInst::CreateMalloc() only creates calls, we ignore InvokeInst here.

Definition at line 204 of file MemoryBuiltins.cpp.

References dyn_cast(), I, and isMallocLikeFn().

Referenced by extractMallocCall(), isArrayMalloc(), and OptimizeOnceStoredGlobal().

static CallInst* llvm::extractMallocCall ( Value *  I,
const TargetLibraryInfo *  TLI 
)
inlinestatic

Definition at line 80 of file MemoryBuiltins.h.

References extractMallocCall().

GlobalValue * llvm::ExtractTypeInfo ( Value V)

ExtractTypeInfo - Returns the type info, possibly bitcast, encoded in V.

Definition at line 118 of file CodeGen/Analysis.cpp.

References assert(), dyn_cast(), and llvm::Value::stripPointerCasts().

Referenced by AddCatchInfo().

static bool llvm::f64AssignAAPCS ( unsigned ValNo,
MVT &  ValVT,
MVT &  LocVT,
CCValAssign::LocInfo &  LocInfo,
CCState &  State,
bool  CanFail 
)
static
static bool llvm::f64AssignAPCS ( unsigned ValNo,
MVT &  ValVT,
MVT &  LocVT,
CCValAssign::LocInfo &  LocInfo,
CCState &  State,
bool  CanFail 
)
static
static bool llvm::f64RetAssign ( unsigned ValNo,
MVT &  ValVT,
MVT &  LocVT,
CCValAssign::LocInfo &  LocInfo,
CCState &  State 
)
static
formatted_raw_ostream & llvm::fdbgs ( )

fdbgs() - This returns a reference to a formatted_raw_ostream for debug output. Use it like: fdbgs() << "foo" << "bar";

fdbgs() - This returns a reference to a formatted_raw_ostream for the debug stream. Use it like: fdbgs() << "foo" << "bar";

Definition at line 103 of file FormattedStream.cpp.

References dbgs().

formatted_raw_ostream & llvm::ferrs ( )

ferrs() - This returns a reference to a formatted_raw_ostream for standard error. Use it like: ferrs() << "foo" << "bar";

Definition at line 96 of file FormattedStream.cpp.

References errs().

void llvm::finalizeBundle ( MachineBasicBlock &  MBB,
MachineBasicBlock::instr_iterator  FirstMI,
MachineBasicBlock::instr_iterator  LastMI 
)

finalizeBundle - Finalize a machine instruction bundle which includes a sequence of instructions starting from FirstMI to LastMI (exclusive). This routine adds a BUNDLE instruction to represent the bundle, it adds IsInternalRead markers to MachineOperands which are defined inside the bundle, and it copies externally visible defs and uses to the BUNDLE instruction.

Referenced by llvm::VLIWPacketizerList::endPacket(), and finalizeBundles().

MachineBasicBlock::instr_iterator llvm::finalizeBundle ( MachineBasicBlock &  MBB,
MachineBasicBlock::instr_iterator  FirstMI 
)

finalizeBundle - Same functionality as the previous finalizeBundle except the last instruction in the bundle is not provided as an input. This is used in cases where bundles are pre-determined by marking instructions with 'InsideBundle' marker. It returns the MBB instruction iterator that points to the end of the bundle.

bool llvm::finalizeBundles ( MachineFunction MF)

finalizeBundles - Finalize instruction bundles in the specified MachineFunction. Return true if any bundles are finalized.

Definition at line 224 of file MachineInstrBundle.cpp.

References assert(), llvm::MachineFunction::begin(), llvm::MachineFunction::end(), finalizeBundle(), I, llvm::MachineBasicBlock::instr_begin(), and llvm::MachineBasicBlock::instr_end().

Referenced by INITIALIZE_PASS().

bool llvm::findAllNVVMAnnotation ( const llvm::GlobalValue gv,
std::string  prop,
std::vector< unsigned > &  retval 
)
DbgDeclareInst * llvm::FindAllocaDbgDeclare ( Value V)

FindAllocaDbgDeclare - Finds the llvm.dbg.declare intrinsic corresponding to an alloca, if any.

FindAllocaDbgDeclare - Finds the llvm.dbg.declare intrinsic describing the alloca 'V', if any.

Definition at line 1096 of file Local.cpp.

References llvm::Value::getContext(), llvm::MetadataAsValue::getIfExists(), llvm::LocalAsMetadata::getIfExists(), and llvm::Value::users().

Referenced by replaceDbgDeclareForAlloca().

Value * llvm::FindAvailableLoadedValue ( Value Ptr,
BasicBlock ScanBB,
BasicBlock::iterator ScanFrom,
unsigned  MaxInstsToScan = 6,
AliasAnalysis AA = nullptr,
AAMDNodes AATags = nullptr 
)

Scan the ScanBB block backwards to see if we have the value at the memory address *Ptr locally available within a small number of instructions.

FindAvailableLoadedValue - Scan the ScanBB block backwards (starting at the instruction before ScanFrom) checking to see if we have the value at the memory address *Ptr locally available within a small number of instructions. If the value is available, return it.

If not, return the iterator for the last validated instruction that the value would be live through. If we scanned the entire block and didn't find something that invalidates *Ptr or provides it, ScanFrom would be left at begin() and this returns null. ScanFrom could also be left

MaxInstsToScan specifies the maximum instructions to scan in the block. If it is set to 0, it will scan the whole block. You can also optionally specify an alias analysis implementation, which makes this more precise.

If AATags is non-null and a load or store is found, the AA tags from the load or store are recorded there. If there are no AA tags or if no access is found, it is left unmodified.

The scan starts from ScanFrom. MaxInstsToScan specifies the maximum instructions to scan in the block. If it is set to 0, it will scan the whole block.

If the value is available, this function returns it. If not, it returns the iterator for the last validated instruction that the value would be live through. If we scanned the entire block and didn't find something that invalidates *Ptr or provides it, ScanFrom is left at the last instruction processed and this returns null.

You can also optionally specify an alias analysis implementation, which makes this more precise.

If AATags is non-null and a load or store is found, the AA tags from the load or store are recorded there. If there are no AA tags or if no access is found, it is left unmodified.

Definition at line 170 of file Loads.cpp.

References AreEquivalentAddressValues(), llvm::BasicBlock::begin(), DL, llvm::BasicBlock::getDataLayout(), llvm::AliasAnalysis::getModRefInfo(), llvm::Value::getType(), llvm::AliasAnalysis::getTypeStoreSize(), llvm::DataLayout::getTypeStoreSize(), llvm::CastInst::isBitOrNoopPointerCastable(), LI, llvm::Instruction::mayWriteToMemory(), llvm::AliasAnalysis::Mod, SI, and llvm::Value::stripPointerCasts().

Referenced by llvm::InstCombiner::visitLoadInst().

template<typename T >
std::enable_if<std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed, T>::type llvm::findFirstSet ( T  Val,
ZeroBehavior  ZB = ZB_Max 
)

Get the index of the first set bit starting from the least significant bit.

Only unsigned integral types are allowed.

Parameters
ZBthe behavior on an input of 0. Only ZB_Max and ZB_Undefined are valid arguments.

Definition at line 185 of file MathExtras.h.

References countTrailingZeros(), ZB_Max, and ZB_Undefined.

Referenced by isStringOfOnes().

template<typename T >
std::enable_if<std::numeric_limits<T>::is_integer && std::numeric_limits<T>::is_signed, T>::type llvm::findFirstSet ( T  Val,
ZeroBehavior  ZB = ZB_Max 
)

Get the index of the first set bit starting from the least significant bit.

Only unsigned integral types are allowed.

Parameters
ZBthe behavior on an input of 0. Only ZB_Max and ZB_Undefined are valid arguments.

Definition at line 185 of file MathExtras.h.

References countTrailingZeros(), ZB_Max, and ZB_Undefined.

Referenced by isStringOfOnes().

void llvm::FindFunctionBackedges ( const Function F,
SmallVectorImpl< std::pair< const BasicBlock *, const BasicBlock * > > &  Result 
)

Analyze the specified function to find all of the loop backedges in the function and return them. This is a relatively cheap (compared to computing dominators and loop info) analysis.

The output is added to Result, as pairs of <from,to> edge info.

FindFunctionBackedges - Analyze the specified function to find all of the loop backedges in the function and return them. This is a relatively cheap (compared to computing dominators and loop info) analysis.

The output is added to Result, as pairs of <from,to> edge info.

Definition at line 27 of file CFG.cpp.

References llvm::SmallVectorTemplateCommon< T >::back(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SmallVectorBase::empty(), llvm::SmallPtrSetImpl< PtrType >::erase(), llvm::Function::getEntryBlock(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), succ_begin(), succ_empty(), and succ_end().

Value * llvm::FindInsertedValue ( Value V,
ArrayRef< unsigned idx_range,
Instruction InsertBefore = nullptr 
)

FindInsertedValue - Given an aggregrate and an sequence of indices, see if the scalar value indexed is already around as a register, for example if it were inserted directly into the aggregrate.

If InsertBefore is not null, this function will duplicate (modified) insertvalues when a part of a nested struct is extracted.

Given an aggregrate and an sequence of indices, see if the scalar value indexed is already around as a register, for example if it were inserted directly into the aggregrate.

If InsertBefore is not null, this function will duplicate (modified) insertvalues when a part of a nested struct is extracted.

Definition at line 2202 of file ValueTracking.cpp.

References llvm::SmallVectorImpl< T >::append(), assert(), llvm::ArrayRef< T >::begin(), BuildSubAggregate(), llvm::CallingConv::C, llvm::ArrayRef< T >::empty(), llvm::ArrayRef< T >::end(), llvm::ExtractValueInst::getIndexedType(), llvm::Value::getType(), I, llvm::Type::isArrayTy(), llvm::Type::isStructTy(), makeArrayRef(), llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorTemplateCommon< T >::size(), llvm::ArrayRef< T >::size(), and llvm::ArrayRef< T >::slice().

Referenced by BuildSubAggregate().

template<typename T >
std::enable_if<std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed, T>::type llvm::findLastSet ( T  Val,
ZeroBehavior  ZB = ZB_Max 
)

Get the index of the last set bit starting from the least significant bit.

Only unsigned integral types are allowed.

Parameters
ZBthe behavior on an input of 0. Only ZB_Max and ZB_Undefined are valid arguments.

Definition at line 208 of file MathExtras.h.

References countLeadingZeros(), and ZB_Undefined.

Referenced by llvm::SystemZSelectionDAGInfo::EmitTargetCodeForMemset(), SelectInt64(), and SelectInt64Count().

template<typename T >
std::enable_if<std::numeric_limits<T>::is_integer && std::numeric_limits<T>::is_signed, T>::type llvm::findLastSet ( T  Val,
ZeroBehavior  ZB = ZB_Max 
)

Get the index of the last set bit starting from the least significant bit.

Only unsigned integral types are allowed.

Parameters
ZBthe behavior on an input of 0. Only ZB_Max and ZB_Undefined are valid arguments.

Definition at line 208 of file MathExtras.h.

References countLeadingZeros(), and ZB_Undefined.

Referenced by llvm::SystemZSelectionDAGInfo::EmitTargetCodeForMemset(), SelectInt64(), and SelectInt64Count().

bool llvm::findOneNVVMAnnotation ( const llvm::GlobalValue gv,
std::string  prop,
unsigned retval 
)
MachineBasicBlock::iterator llvm::findPHICopyInsertPoint ( MachineBasicBlock MBB,
MachineBasicBlock SuccMBB,
unsigned  SrcReg 
)
bool llvm::FlattenCFG ( BasicBlock BB,
AliasAnalysis AA = nullptr 
)

FlatternCFG - This function is used to flatten a CFG. For example, it uses parallel-and and parallel-or mode to collapse

FlattenCFG - This function is used to flatten a CFG. For example, it uses parallel-and and parallel-or mode to collapse

Definition at line 487 of file FlattenCFG.cpp.

Referenced by iterativelyFlattenCFG().

uint32_t llvm::FloatToBits ( float  Float)
inline

FloatToBits - This function takes a float and returns the bit equivalent 32-bit integer. Note that copying floats around changes the bits of NaNs on some hosts, notably x86, so this routine cannot be used if these bits are needed.

Definition at line 524 of file MathExtras.h.

References F(), llvm::NVPTX::PTXLdStInstCode::Float, I, and T.

Referenced by llvm::SITargetLowering::analyzeImmediate(), llvm::PPC::get_VSPLTI_elt(), and llvm::SIInstrInfo::isInlineConstant().

bool llvm::FoldBranchToCommonDest ( BranchInst BI,
const DataLayout DL = nullptr,
unsigned  BonusInstThreshold = 1 
)

FoldBranchToCommonDest - If this basic block is ONLY a setcc and a branch, and if a predecessor branches to us and one of our successors, fold the setcc into the predecessor and use logical operations to pick the right destination.

FoldBranchToCommonDest - If this basic block is simple enough, and if a predecessor branches to us and one of our successors, fold the block into the predecessor and use logical operations to pick the right destination.

Definition at line 2070 of file SimplifyCFG.cpp.

References AddPredecessorToBlock(), llvm::APIntOps::And(), assert(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::BasicBlock::begin(), checkCSEInPredecessor(), llvm::Instruction::clone(), llvm::BranchInst::Create(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateBinOp(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateNot(), dbgs(), DEBUG, llvm::Instruction::dropUnknownMetadata(), dyn_cast(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::BasicBlock::end(), EraseTerminatorInstAndDCECond(), ExtractBranchMetadata(), FitWeights(), llvm::BranchInst::getCondition(), llvm::Value::getContext(), llvm::BasicBlock::getInstList(), llvm::CmpInst::getInversePredicate(), llvm::Value::getName(), llvm::User::getOperand(), llvm::Instruction::getParent(), llvm::BasicBlock::getSinglePredecessor(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::ConstantInt::getType(), llvm::Value::hasOneUse(), I, llvm::iplist< NodeTy, Traits >::insert(), llvm::Instruction::insertBefore(), llvm::BranchInst::isConditional(), llvm::Type::isIntegerTy(), llvm::ConstantInt::isOne(), isProfitableToFoldUnconditional(), isSafeToSpeculativelyExecute(), llvm::BranchInst::isUnconditional(), llvm::LLVMContext::MD_dbg, llvm::LLVMContext::MD_prof, llvm::APIntOps::Or(), pred_begin(), pred_end(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), RemapInstruction(), RF_IgnoreMissingEntries, RF_NoModuleLevelChanges, SafeToMergeTerminators(), llvm::BranchInst::setCondition(), llvm::Instruction::setMetadata(), llvm::Value::setName(), llvm::CmpInst::setPredicate(), llvm::BranchInst::setSuccessor(), llvm::SmallVectorTemplateCommon< T >::size(), llvm::BranchInst::swapSuccessors(), and llvm::Value::takeName().

Referenced by simplifyOneLoop().

ReturnInst * llvm::FoldReturnIntoUncondBranch ( ReturnInst RI,
BasicBlock BB,
BasicBlock Pred 
)

FoldReturnIntoUncondBranch - This method duplicates the specified return instruction into a predecessor which ends in an unconditional branch. If the return instruction returns a value defined by a PHI, propagate the right value into the return. It returns the new return instruction in the predecessor.

Definition at line 627 of file BasicBlockUtils.cpp.

References llvm::Instruction::clone(), llvm::Instruction::eraseFromParent(), llvm::BasicBlock::getInstList(), llvm::BasicBlock::getTerminator(), llvm::iplist< NodeTy, Traits >::insert(), llvm::User::op_begin(), llvm::User::op_end(), llvm::iplist< NodeTy, Traits >::push_back(), llvm::BasicBlock::removePredecessor(), and llvm::User::setOperand().

void llvm::FoldSingleEntryPHINodes ( BasicBlock BB,
Pass P = nullptr 
)

FoldSingleEntryPHINodes - We know that BB has one predecessor. If there are any single-entry PHI nodes in it, fold them away. This handles the case when all entries to the PHI nodes in a block are guaranteed equal, such as when the block has exactly one predecessor.

Definition at line 68 of file BasicBlockUtils.cpp.

References llvm::BasicBlock::begin(), llvm::AliasAnalysis::deleteValue(), llvm::UndefValue::get(), llvm::Pass::getAnalysisIfAvailable(), and llvm::MemoryDependenceAnalysis::removeInstruction().

Referenced by FoldBlockIntoPredecessor(), FoldCondBranchOnPHI(), and MergeBlockIntoPredecessor().

cl::opt<bool> llvm::ForceBottomUp ( "misched-bottomup"  ,
cl::Hidden  ,
cl::  desc"Force bottom-up list scheduling" 
)
cl::opt<bool> llvm::ForceTopDown ( "misched-topdown"  ,
cl::Hidden  ,
cl::  desc"Force top-down list scheduling" 
)
template<typename T >
format_object1<T> llvm::format ( const char *  Fmt,
const T Val 
)
inline

These are helper functions used to produce formatted output. They use template type deduction to construct the appropriate instance of the format_object class to simplify their construction.

This is typically used like:

OS << format("%0.4f", myfloat) << '\n';

Definition at line 191 of file Format.h.

Referenced by dbgprintf(), llvm::DWARFCompileUnit::dump(), llvm::DWARFTypeUnit::dump(), llvm::DWARFDebugInfoEntryMinimal::dump(), llvm::DWARFAcceleratorTable::dump(), llvm::DWARFAbbreviationDeclaration::dump(), llvm::DWARFDebugLoc::dump(), llvm::DWARFDebugAbbrev::dump(), llvm::DWARFDebugArangeSet::dump(), llvm::DWARFFormValue::dump(), llvm::DWARFDebugRangeList::dump(), llvm::DWARFContext::dump(), llvm::DWARFDebugLocDWO::dump(), llvm::DWARFDebugLine::Prologue::dump(), llvm::DWARFDebugLine::Row::dump(), dumpApplePropertyAttribute(), llvm::DWARFDebugInfoEntryMinimal::dumpAttribute(), dumpPubSection(), dumpRanges(), llvm::RuntimeDyldMachO::dumpRelocationToResolve(), dumpSectionMemory(), llvm::DWARFContextInMemory::DWARFContextInMemory(), llvm::RuntimeDyldImpl::emitCommonSymbols(), emitGlobalConstantDataSequential(), emitGlobalConstantImpl(), llvm::AMDGPUAsmPrinter::EmitInstruction(), llvm::RuntimeDyldImpl::emitSection(), llvm::RuntimeDyldCheckerExprEval::evaluate(), llvm::MCInstPrinter::formatDec(), llvm::MCInstPrinter::formatHex(), getSizeForEncoding(), Help(), llvm::RuntimeDyldImpl::loadObjectImpl(), llvm::object::MachORebaseEntry::moveNext(), llvm::object::MachOBindEntry::moveNext(), llvm::raw_ostream::operator<<(), llvm::DWARFDebugFrame::parse(), llvm::BranchProbability::print(), llvm::ILPValue::print(), llvm::TimeRecord::print(), llvm::DIEAbbrev::print(), llvm::DIE::print(), llvm::FileInfo::print(), llvm::DIEEntry::print(), llvm::DIETypeSignature::print(), llvm::LiveInterval::print(), llvm::AArch64InstPrinter::printFPImmOperand(), llvm::AArch64InstPrinter::printHexImm(), llvm::X86ATTInstPrinter::printOperand(), printRelocationTargetName(), llvm::AArch64InstPrinter::printSIMDType10Operand(), PrintStatistics(), printVal(), llvm::RuntimeDyldImpl::reassignSectionAddress(), llvm::RuntimeDyldImpl::resolveExternalSymbols(), llvm::RuntimeDyldImpl::resolveRelocations(), llvm::MD5::stringifyResult(), and llvm::AArch64ExternalSymbolizer::tryAddingSymbolicOperand().

template<typename T1 , typename T2 >
format_object2<T1, T2> llvm::format ( const char *  Fmt,
const T1 Val1,
const T2 &  Val2 
)
inline

Definition at line 196 of file Format.h.

template<typename T1 , typename T2 , typename T3 >
format_object3<T1, T2, T3> llvm::format ( const char *  Fmt,
const T1 Val1,
const T2 &  Val2,
const T3 &  Val3 
)
inline

Definition at line 202 of file Format.h.

template<typename T1 , typename T2 , typename T3 , typename T4 >
format_object4<T1, T2, T3, T4> llvm::format ( const char *  Fmt,
const T1 Val1,
const T2 &  Val2,
const T3 &  Val3,
const T4 &  Val4 
)
inline

Definition at line 208 of file Format.h.

template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
format_object5<T1, T2, T3, T4, T5> llvm::format ( const char *  Fmt,
const T1 Val1,
const T2 &  Val2,
const T3 &  Val3,
const T4 &  Val4,
const T5 &  Val5 
)
inline

Definition at line 215 of file Format.h.

template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
format_object6<T1, T2, T3, T4, T5, T6> llvm::format ( const char *  Fmt,
const T1 Val1,
const T2 &  Val2,
const T3 &  Val3,
const T4 &  Val4,
const T5 &  Val5,
const T6 &  Val6 
)
inline

Definition at line 224 of file Format.h.

FormattedNumber llvm::format_decimal ( int64_t  N,
unsigned  Width 
)
inline

format_decimal - Output N as a right justified, fixed-width decimal. If number will not fit in width, full number is still printed. Examples: OS << format_decimal(0, 5) => " 0" OS << format_decimal(255, 5) => " 255" OS << format_decimal(-1, 3) => " -1" OS << format_decimal(12345, 3) => "12345"

Definition at line 285 of file Format.h.

FormattedNumber llvm::format_hex ( uint64_t  N,
unsigned  Width,
bool  Upper = false 
)
inline

format_hex - Output N as a fixed width hexadecimal. If number will not fit in width, full number is still printed. Examples: OS << format_hex(255, 4) => 0xff OS << format_hex(255, 4, true) => 0xFF OS << format_hex(255, 6) => 0x00ff OS << format_hex(255, 2) => 0xff

Definition at line 274 of file Format.h.

References assert().

bool llvm::formLCSSA ( Loop L,
DominatorTree DT,
LoopInfo LI,
ScalarEvolution SE = nullptr 
)

Put loop into LCSSA form.

Looks at all instructions in the loop which have uses outside of the current loop. For each, an LCSSA PHI node is inserted and the uses outside the loop are rewritten to use this node.

LoopInfo and DominatorTree are required and preserved.

If ScalarEvolution is passed in, it will be preserved.

Returns true if any modifications are made to the loop.

Definition at line 215 of file LCSSA.cpp.

References assert(), llvm::BasicBlock::begin(), llvm::LoopBase< N, M >::block_begin(), llvm::LoopBase< N, M >::block_end(), blockDominatesAnExit(), llvm::SmallVectorBase::empty(), llvm::BasicBlock::end(), llvm::ScalarEvolution::forgetLoop(), llvm::LoopBase< N, M >::getExitBlocks(), I, llvm::Loop::isLCSSAForm(), and processInstruction().

Referenced by formLCSSARecursively().

bool llvm::formLCSSARecursively ( Loop L,
DominatorTree DT,
LoopInfo LI,
ScalarEvolution SE = nullptr 
)

Put a loop nest into LCSSA form.

Process a loop nest depth first.

This recursively forms LCSSA for a loop nest.

LoopInfo and DominatorTree are required and preserved.

If ScalarEvolution is passed in, it will be preserved.

Returns true if any modifications are made to the loop.

Definition at line 264 of file LCSSA.cpp.

References llvm::LoopBase< N, M >::begin(), llvm::LoopBase< N, M >::end(), formLCSSA(), and I.

Referenced by UnrollLoop().

formatted_raw_ostream & llvm::fouts ( )

fouts() - This returns a reference to a formatted_raw_ostream for standard output. Use it like: fouts() << "foo" << "bar";

Definition at line 89 of file FormattedStream.cpp.

References outs().

DITypeIdentifierMap llvm::generateDITypeIdentifierMap ( const NamedMDNode CU_Nodes)
gep_type_iterator llvm::gep_type_begin ( const User *  GEP)
inline
gep_type_iterator llvm::gep_type_begin ( const User &  GEP)
inline
template<typename T >
generic_gep_type_iterator<const T *> llvm::gep_type_begin ( Type Op0,
ArrayRef< T A 
)
inline
gep_type_iterator llvm::gep_type_end ( const User *  GEP)
inline
gep_type_iterator llvm::gep_type_end ( const User &  GEP)
inline
template<typename T >
generic_gep_type_iterator<const T *> llvm::gep_type_end ( Type ,
ArrayRef< T A 
)
inline
unsigned llvm::get512BitSuperRegister ( unsigned  Reg)

Definition at line 720 of file X86RegisterInfo.cpp.

References llvm_unreachable.

Referenced by copyPhysRegOpcode_AVX512().

static const Metadata* llvm::get_hashable_data ( const MDOperand X)
static

Make MDOperand transparent for hashing.

This overload of an implementation detail of the hashing library makes MDOperand hash to the same value as a Metadata pointer.

Note that overloading hash_value() as follows:

size_t hash_value(const MDOperand &X) { return hash_value(X.get()); }

does not cause MDOperand to be transparent. In particular, a bare pointer doesn't get hashed before it's combined, whereas MDOperand would.

Definition at line 520 of file Metadata.cpp.

References llvm::MDOperand::get().

bool llvm::getAlign ( const llvm::Function F,
unsigned  index,
unsigned align 
)
bool llvm::getAlign ( const llvm::CallInst I,
unsigned  index,
unsigned align 
)

Definition at line 322 of file NVPTXUtilities.cpp.

References llvm::Instruction::getMetadata().

bool llvm::getAsSignedInteger ( StringRef  Str,
unsigned  Radix,
long long &  Result 
)
bool llvm::getAsUnsignedInteger ( StringRef  Str,
unsigned  Radix,
unsigned long long &  Result 
)

Helper functions for StringRef::getAsInteger.

GetAsUnsignedInteger - Workhorse method that converts a integer character sequence of radix up to 36 to an unsigned long long value.

Definition at line 339 of file StringRef.cpp.

References llvm::StringRef::empty(), GetAutoSenseRadix(), and llvm::StringRef::substr().

Referenced by llvm::StringRef::getAsInteger(), getAsSignedInteger(), and parsePhysicalReg().

std::string llvm::getBitcodeTargetTriple ( MemoryBufferRef  Buffer,
LLVMContext Context,
DiagnosticHandlerFunction  DiagnosticHandler = nullptr 
)

Read the header of the specified bitcode buffer and extract just the triple information. If successful, this returns a string. On error, this returns "".

Definition at line 3759 of file BitcodeReader.cpp.

References llvm::ErrorOr< T >::get(), and llvm::MemoryBuffer::getMemBuffer().

Referenced by llvm::LTOModule::isBitcodeForTarget().

static unsigned llvm::getBRegFromDReg ( unsigned  Reg)
inlinestatic

Definition at line 109 of file AArch64BaseInfo.h.

MachineBasicBlock::instr_iterator llvm::getBundleEnd ( MachineInstr *  MI)
inline

Return an iterator pointing beyond the bundle containing MI.

Definition at line 62 of file MachineInstrBundle.h.

References I, and llvm::AArch64CC::MI.

MachineBasicBlock::const_instr_iterator llvm::getBundleEnd ( const MachineInstr *  MI)
inline

Return an iterator pointing beyond the bundle containing MI.

Definition at line 71 of file MachineInstrBundle.h.

References I, and llvm::AArch64CC::MI.

MachineInstr* llvm::getBundleStart ( MachineInstr *  MI)
inline
const MachineInstr* llvm::getBundleStart ( const MachineInstr *  MI)
inline

Definition at line 53 of file MachineInstrBundle.h.

References I, and llvm::AArch64CC::MI.

static unsigned llvm::getComplexity ( Value *  V)
inlinestatic

getComplexity: Assign a complexity or rank value to LLVM Values... 0 -> undef, 1 -> Const, 2 -> Other, 3 -> Arg, 3 -> Unary, 4 -> OtherInst

Definition at line 51 of file InstCombine.h.

References llvm::BinaryOperator::isFNeg(), llvm::BinaryOperator::isNeg(), and llvm::BinaryOperator::isNot().

Referenced by llvm::InstCombiner::visitFCmpInst(), and llvm::InstCombiner::visitICmpInst().

bool llvm::getConstantStringInfo ( const Value V,
StringRef Str,
uint64_t  Offset = 0,
bool  TrimAtNul = true 
)

getConstantStringInfo - This function computes the length of a null-terminated C string pointed to by V. If successful, it returns true and returns the string in Str. If unsuccessful, it returns false. This does not include the trailing nul character by default. If TrimAtNul is set to false, then this returns any trailing nul characters as well as any other characters that come after it.

This function computes the length of a null-terminated C string pointed to by V. If successful, it returns true and returns the string in Str. If unsuccessful, it returns false.

Definition at line 2327 of file ValueTracking.cpp.

References assert(), dyn_cast(), llvm::StringRef::find(), llvm::Type::getArrayNumElements(), llvm::ConstantDataSequential::getAsString(), llvm::SequentialType::getElementType(), llvm::GlobalVariable::getInitializer(), llvm::ConstantDataArray::getType(), llvm::ConstantInt::getZExtValue(), llvm::GlobalVariable::hasDefinitiveInitializer(), llvm::GlobalVariable::isConstant(), llvm::Constant::isNullValue(), llvm::ConstantDataSequential::isString(), llvm::ConstantInt::isZero(), llvm::Value::stripPointerCasts(), and llvm::StringRef::substr().

Referenced by ConstantFoldLoadFromConstPtr(), GetStringLengthH(), and isMemSrcFromString().

DataStreamer * llvm::getDataFileStreamer ( const std::string &  Filename,
std::string *  Err 
)

Definition at line 81 of file DataStream.cpp.

unsigned llvm::getDeadRegState ( bool  B)
inline
unsigned llvm::getDebugMetadataVersionFromModule ( const Module M)

Return Debug Info Metadata Version by checking module flags.

Definition at line 1510 of file DebugInfo.cpp.

References llvm::Module::getModuleFlag().

Referenced by UpgradeDebugInfo().

unsigned llvm::getDebugRegState ( bool  B)
inline

Definition at line 413 of file MachineInstrBuilder.h.

References llvm::RegState::Debug.

unsigned llvm::getDefRegState ( bool  B)
inline
DICompositeType llvm::getDICompositeType ( DIType  T)

Find underlying composite type.

Definition at line 909 of file DebugInfo.cpp.

References llvm::DIDescriptor::isCompositeType(), and llvm::DIDescriptor::isDerivedType().

DISubprogram llvm::getDISubprogram ( const MDNode Scope)
DISubprogram llvm::getDISubprogram ( const Function F)

Find debug info for a given function.

Returns
a valid DISubprogram, if found. Otherwise, it returns an empty DISubprogram.

Definition at line 892 of file DebugInfo.cpp.

References llvm::DISubprogram::describes(), getDISubprogram(), and llvm::DebugLoc::getScopeNode().

static unsigned llvm::getDRegFromBReg ( unsigned  Reg)
inlinestatic

Definition at line 149 of file AArch64BaseInfo.h.

ISD::CondCode llvm::getFCmpCodeWithoutNaN ( ISD::CondCode  CC)
ISD::CondCode llvm::getFCmpCondCode ( FCmpInst::Predicate  Pred)
LLVMContext & llvm::getGlobalContext ( )

getGlobalContext - Returns a global context. This is for LLVM clients that only care about operating on a single thread.

Definition at line 30 of file LLVMContext.cpp.

References GlobalContext.

Referenced by llvm::LTOModule::createFromBuffer(), llvm::LTOModule::createFromFile(), llvm::LTOModule::createFromOpenFileSlice(), LLVMGetGlobalContext(), LLVMIntPtrType(), LLVMIntPtrTypeForAS(), LLVMModuleCreateWithName(), and LLVMParseBitcode().

unsigned llvm::getICmpCode ( const ICmpInst ICI,
bool  InvertPred = false 
)

getICmpCode - Encode a icmp predicate into a three bit mask. These bits are carefully arranged to allow folding of expressions such as:

 (A < B) | (A > B) --> (A != B)

Note that this is only valid if the first and second predicates have the same sign. Is illegal to do: (A u< B) | (A s> B)

Three bits are used to represent the condition, as follows: 0 A > B 1 A == B 2 A < B

<=> Value Definition 000 0 Always false 001 1 A > B 010 2 A == B 011 3 A >= B 100 4 A < B 101 5 A != B 110 6 A <= B 111 7 Always true

Definition at line 44 of file CmpInstAnalysis.cpp.

References llvm::CmpInst::getInversePredicate(), llvm::CmpInst::getPredicate(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, and llvm_unreachable.

Referenced by llvm::InstCombiner::FoldAndOfICmps(), llvm::InstCombiner::FoldOrOfICmps(), and llvm::InstCombiner::visitXor().

ISD::CondCode llvm::getICmpCondCode ( ICmpInst::Predicate  Pred)
Value * llvm::getICmpValue ( bool  Sign,
unsigned  Code,
Value LHS,
Value RHS,
CmpInst::Predicate NewICmpPred 
)

getICmpValue - This is the complement of getICmpCode, which turns an opcode and two operands into either a constant true or false, or the predicate for a new ICmp instruction. The sign is passed in to determine which kind of predicate to use in the new icmp instruction. Non-NULL return value will be a true or false constant. NULL return means a new ICmp is needed. The predicate for which is output in NewICmpPred.

Definition at line 72 of file CmpInstAnalysis.cpp.

References llvm::ConstantInt::get(), llvm::Value::getType(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, llvm_unreachable, and llvm::CmpInst::makeCmpResultType().

Referenced by getNewICmpValue().

Value * llvm::GetIfCondition ( BasicBlock BB,
BasicBlock *&  IfTrue,
BasicBlock *&  IfFalse 
)

GetIfCondition - Check whether BB is the merge point of a if-region. If so, return the boolean condition that determines which entry into BB will be taken. Also, return by references the block that will be entered from if the condition is true, and the block that will be entered if the condition is false.

GetIfCondition - Given a basic block (BB) with two predecessors, check to see if the merge at this block is due to an "if condition". If so, return the boolean condition that determines which entry into BB will be taken. Also, return by references the block that will be entered from if the condition is true, and the block that will be entered if the condition is false.

This does no checking to see if the true/false blocks have large or unsavory instructions in them.

Definition at line 768 of file BasicBlockUtils.cpp.

References assert(), llvm::BasicBlock::begin(), dyn_cast(), llvm::BranchInst::getCondition(), llvm::PHINode::getIncomingBlock(), llvm::PHINode::getNumIncomingValues(), llvm::BasicBlock::getSinglePredecessor(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::BranchInst::isConditional(), pred_begin(), pred_end(), and std::swap().

Referenced by FoldTwoEntryPHINode().

unsigned llvm::getImplRegState ( bool  B)
inline

Definition at line 398 of file MachineInstrBuilder.h.

References llvm::RegState::Implicit.

Referenced by addSavedGPR().

Instruction * llvm::getInst ( Value base,
char *  instName 
)
ARMCC::CondCodes llvm::getInstrPredicate ( const MachineInstr MI,
unsigned PredReg 
)

getInstrPredicate - If instruction is predicated, returns its predicate condition, otherwise returns AL. It also returns the condition code register by reference.

Definition at line 1732 of file ARMBaseInstrInfo.cpp.

References llvm::ARMCC::AL, llvm::MachineInstr::findFirstPredOperandIdx(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), and llvm::MachineOperand::getReg().

Referenced by llvm::ARMBaseInstrInfo::commuteInstruction(), getITInstrPredicate(), isMatchingDecrement(), isMatchingIncrement(), llvm::Thumb2InstrInfo::ReplaceTailWithBranchTo(), and rewriteT2FrameIndex().

unsigned llvm::getInternalReadRegState ( bool  B)
inline

Definition at line 410 of file MachineInstrBuilder.h.

References llvm::RegState::InternalRead.

static Intrinsic::ID llvm::getIntrinsicIDForCall ( CallInst *  CI,
const TargetLibraryInfo *  TLI 
)
static

Definition at line 99 of file VectorUtils.h.

References llvm::Intrinsic::assume, llvm::LibFunc::ceil, llvm::Intrinsic::ceil, llvm::LibFunc::ceilf, llvm::LibFunc::ceill, checkBinaryFloatSignature(), checkUnaryFloatSignature(), llvm::LibFunc::copysign, llvm::Intrinsic::copysign, llvm::LibFunc::copysignf, llvm::LibFunc::copysignl, llvm::LibFunc::cos, llvm::Intrinsic::cos, llvm::LibFunc::cosf, llvm::LibFunc::cosl, llvm::LibFunc::exp, llvm::Intrinsic::exp, llvm::LibFunc::exp2, llvm::Intrinsic::exp2, llvm::LibFunc::exp2f, llvm::LibFunc::exp2l, llvm::LibFunc::expf, llvm::LibFunc::expl, F(), llvm::LibFunc::fabs, llvm::Intrinsic::fabs, llvm::LibFunc::fabsf, llvm::LibFunc::fabsl, llvm::LibFunc::floor, llvm::Intrinsic::floor, llvm::LibFunc::floorf, llvm::LibFunc::floorl, llvm::LibFunc::fmax, llvm::LibFunc::fmaxf, llvm::LibFunc::fmaxl, llvm::LibFunc::fmin, llvm::LibFunc::fminf, llvm::LibFunc::fminl, llvm::CallInst::getCalledFunction(), llvm::TargetLibraryInfo::getLibFunc(), llvm::Value::getName(), llvm::GlobalValue::hasLocalLinkage(), ID, isTriviallyVectorizable(), llvm::Intrinsic::lifetime_end, llvm::Intrinsic::lifetime_start, llvm::LibFunc::log, llvm::Intrinsic::log, llvm::LibFunc::log10, llvm::Intrinsic::log10, llvm::LibFunc::log10f, llvm::LibFunc::log10l, llvm::LibFunc::log2, llvm::Intrinsic::log2, llvm::LibFunc::log2f, llvm::LibFunc::log2l, llvm::LibFunc::logf, llvm::LibFunc::logl, llvm::Intrinsic::maxnum, llvm::Intrinsic::minnum, llvm::LibFunc::nearbyint, llvm::Intrinsic::nearbyint, llvm::LibFunc::nearbyintf, llvm::LibFunc::nearbyintl, llvm::Intrinsic::not_intrinsic, llvm::LibFunc::pow, llvm::Intrinsic::pow, llvm::LibFunc::powf, llvm::LibFunc::powl, llvm::LibFunc::rint, llvm::Intrinsic::rint, llvm::LibFunc::rintf, llvm::LibFunc::rintl, llvm::LibFunc::round, llvm::Intrinsic::round, llvm::LibFunc::roundf, llvm::LibFunc::roundl, llvm::LibFunc::sin, llvm::Intrinsic::sin, llvm::LibFunc::sinf, llvm::LibFunc::sinl, llvm::LibFunc::trunc, llvm::Intrinsic::trunc, llvm::LibFunc::truncf, and llvm::LibFunc::truncl.

static const IntrinsicData* llvm::getIntrinsicWithChain ( unsigned  IntNo)
static
static const IntrinsicData* llvm::getIntrinsicWithoutChain ( unsigned  IntNo)
static
ARMCC::CondCodes llvm::getITInstrPredicate ( const MachineInstr MI,
unsigned PredReg 
)

getITInstrPredicate - Valid only in Thumb2 mode. This function is identical to llvm::getInstrPredicate except it returns AL for conditional branch instructions which are "predicated", but are not in IT blocks.

Definition at line 634 of file Thumb2InstrInfo.cpp.

References llvm::ARMCC::AL, getInstrPredicate(), and llvm::MachineInstr::getOpcode().

Referenced by llvm::Thumb2InstrInfo::isLegalToSplitMBBAt().

unsigned llvm::getKillRegState ( bool  B)
inline

Definition at line 401 of file MachineInstrBuilder.h.

References llvm::RegState::Kill.

Referenced by addRegOffset(), addRegReg(), addSavedGPR(), llvm::PPCInstrInfo::commuteInstruction(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::ARMBaseInstrInfo::copyFromCPSR(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::Thumb2InstrInfo::copyPhysReg(), llvm::Mips16InstrInfo::copyPhysReg(), llvm::MipsSEInstrInfo::copyPhysReg(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::MSP430InstrInfo::copyPhysReg(), llvm::XCoreInstrInfo::copyPhysReg(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::SparcInstrInfo::copyPhysReg(), llvm::SIInstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysReg(), llvm::PPCInstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyPhysReg(), llvm::SystemZInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysRegTuple(), llvm::ARMBaseInstrInfo::copyToCPSR(), llvm::PPCFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitPrologue(), llvm::FastISel::fastEmitInst_extractsubreg(), llvm::FastISel::fastEmitInst_r(), llvm::FastISel::fastEmitInst_rf(), llvm::FastISel::fastEmitInst_ri(), llvm::FastISel::fastEmitInst_rii(), llvm::FastISel::fastEmitInst_rr(), llvm::FastISel::fastEmitInst_rri(), llvm::FastISel::fastEmitInst_rrii(), llvm::FastISel::fastEmitInst_rrr(), llvm::ARMBaseInstrInfo::FoldImmediate(), genMadd(), genMaddR(), getPrologueDeath(), insertCopy(), insertDivByZeroTrap(), InsertFPConstInst(), InsertFPImmInst(), InsertLDR_STR(), InsertSPConstInst(), InsertSPImmInst(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), restoreCRs(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), llvm::X86InstrInfo::storeRegToAddr(), llvm::Mips16InstrInfo::storeRegToStack(), llvm::MipsSEInstrInfo::storeRegToStack(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::SystemZInstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::storeRegToStackSlot(), and llvm::X86InstrInfo::unfoldMemoryOperand().

static unsigned llvm::getKnownAlignment ( Value *  V,
const DataLayout *  TD = nullptr,
AssumptionCache *  AC = nullptr,
const Instruction *  CxtI = nullptr,
const DominatorTree *  DT = nullptr 
)
inlinestatic

getKnownAlignment - Try to infer an alignment for the specified pointer.

Definition at line 183 of file Local.h.

References getOrEnforceKnownAlignment().

Referenced by AddAlignmentAssumptions(), and llvm::InstCombiner::visitCallInst().

ErrorOr< Module * > llvm::getLazyBitcodeModule ( std::unique_ptr< MemoryBuffer > &&  Buffer,
LLVMContext Context,
DiagnosticHandlerFunction  DiagnosticHandler = nullptr 
)

Read the header of the specified bitcode buffer and prepare for lazy deserialization of function bodies. If successful, this moves Buffer. On error, this does not move Buffer.

Definition at line 3718 of file BitcodeReader.cpp.

References getLazyBitcodeModuleImpl().

Referenced by llvm::object::IRObjectFile::create(), getLazyIRModule(), LLVMGetBitcodeModuleInContext(), and parseBitcodeFileImpl().

std::unique_ptr< Module > llvm::getLazyIRFileModule ( StringRef  Filename,
SMDiagnostic Err,
LLVMContext Context 
)

If the given file holds a bitcode image, return a Module for it which does lazy deserialization of function bodies. Otherwise, attempt to parse it as LLVM Assembly and return a fully populated Module.

Definition at line 50 of file IRReader.cpp.

References llvm::SourceMgr::DK_Error, llvm::ErrorOr< T >::get(), llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFileOrSTDIN(), and getLazyIRModule().

Type * llvm::getMallocAllocatedType ( const CallInst CI,
const TargetLibraryInfo TLI 
)

getMallocAllocatedType - Returns the Type allocated by malloc call. The Type depends on the number of bitcast uses of the malloc call: 0: PointerType is the malloc calls' return type. 1: PointerType is the bitcast's result type. >1: Unique PointerType cannot be determined, return NULL.

Definition at line 289 of file MemoryBuiltins.cpp.

References llvm::SequentialType::getElementType(), and getMallocType().

Referenced by computeArraySize(), OptimizeOnceStoredGlobal(), PerformHeapAllocSRoA(), and TryToOptimizeStoreOfMallocToGlobal().

Value * llvm::getMallocArraySize ( CallInst CI,
const DataLayout DL,
const TargetLibraryInfo TLI,
bool  LookThroughSExt = false 
)

getMallocArraySize - Returns the array size of a malloc call. If the argument passed to malloc is a multiple of the size of the malloced type, then return that multiple. For non-array mallocs, the multiple is constant 1. Otherwise, return NULL for mallocs whose array size cannot be determined.

Definition at line 300 of file MemoryBuiltins.cpp.

References assert(), computeArraySize(), and isMallocLikeFn().

Referenced by TryToOptimizeStoreOfMallocToGlobal().

PointerType * llvm::getMallocType ( const CallInst CI,
const TargetLibraryInfo TLI 
)

getMallocType - Returns the PointerType resulting from the malloc call. The PointerType depends on the number of bitcast uses of the malloc call: 0: PointerType is the malloc calls' return type. 1: PointerType is the bitcast's result type. >1: Unique PointerType cannot be determined, return NULL.

getMallocType - Returns the PointerType resulting from the malloc call. The PointerType depends on the number of bitcast uses of the malloc call: 0: PointerType is the calls' return type. 1: PointerType is the bitcast's result type. >1: Unique PointerType cannot be determined, return NULL.

Definition at line 257 of file MemoryBuiltins.cpp.

References assert(), llvm::Value::getType(), isMallocLikeFn(), llvm::Value::user_begin(), and llvm::Value::user_end().

Referenced by getMallocAllocatedType().

int llvm::getMatchingCondBranchOpcode ( int  Opc)

Definition at line 1744 of file ARMBaseInstrInfo.cpp.

References llvm_unreachable.

Referenced by llvm::ARMBaseInstrInfo::PredicateInstruction().

bool llvm::getMaxNTIDx ( const llvm::Function F,
unsigned x 
)
bool llvm::getMaxNTIDy ( const llvm::Function F,
unsigned y 
)
bool llvm::getMaxNTIDz ( const llvm::Function F,
unsigned z 
)
static const ConstantExpr* llvm::getMergedGlobalExpr ( const Value *  V)
static
bool llvm::getMinCTASm ( const llvm::Function F,
unsigned x 
)
int llvm::getNextAvailablePluginDiagnosticKind ( )

Get the next available kind ID for a plugin diagnostic. Each time this function is called, it returns a different number. Therefore, a plugin that wants to "identify" its own classes with a dynamic identifier, just have to use this method to get a new ID and assign it to each of its classes. The returned ID will be greater than or equal to DK_FirstPluginKind. Thus, the plugin identifiers will not conflict with the DiagnosticKind values.

Definition at line 89 of file DiagnosticInfo.cpp.

References llvm::sys::AtomicIncrement(), and DK_FirstPluginKind.

BasicBlock* llvm::getNodeHeader ( BasicBlock *  BB)
inline

Definition at line 49 of file IntervalIterator.h.

BasicBlock* llvm::getNodeHeader ( Interval *  I)
inline

Definition at line 50 of file IntervalIterator.h.

References llvm::Interval::getHeaderNode().

MemoryObject * llvm::getNonStreamedMemoryObject ( const unsigned char *  Start,
const unsigned char *  End 
)

Definition at line 117 of file StreamingMemoryObject.cpp.

Referenced by llvm::BitstreamReader::init().

std::string llvm::getNVPTXRegClassName ( TargetRegisterClass const RC)

Definition at line 29 of file NVPTXRegisterInfo.cpp.

std::string llvm::getNVPTXRegClassStr ( TargetRegisterClass const RC)

Definition at line 51 of file NVPTXRegisterInfo.cpp.

Referenced by llvm::NVPTXAsmPrinter::getVirtualRegisterName().

bool llvm::getObjectSize ( const Value Ptr,
uint64_t &  Size,
const DataLayout DL,
const TargetLibraryInfo TLI,
bool  RoundToAlign = false 
)

Compute the size of the object pointed by Ptr. Returns true and the object size in Size if successful, and false otherwise. In this context, by object we mean the region of memory starting at Ptr to the end of the underlying object pointed to by Ptr. If RoundToAlign is true, then Size is rounded up to the aligment of allocas, byval arguments, and global variables.

Compute the size of the object pointed by Ptr. Returns true and the object size in Size if successful, and false otherwise. If RoundToAlign is true, then Size is rounded up to the aligment of allocas, byval arguments, and global variables.

Definition at line 370 of file MemoryBuiltins.cpp.

References llvm::ObjectSizeOffsetVisitor::compute(), llvm::Value::getContext(), and llvm::APInt::ult().

Referenced by computePointerICmp(), getObjectSize(), getPointerSize(), isObjectSize(), isObjectSmallerThan(), and llvm::InstCombiner::visitCallInst().

static std::error_code llvm::getOffset ( const SymbolRef Sym,
uint64_t &  Result 
)
static
static StringRef llvm::getOrdinalSuffix ( unsigned  Val)
inlinestatic

Returns the English suffix for an ordinal integer (-st, -nd, -rd, -th).

Definition at line 150 of file StringExtras.h.

unsigned llvm::getOrEnforceKnownAlignment ( Value V,
unsigned  PrefAlign,
const DataLayout DL = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr 
)

getOrEnforceKnownAlignment - If the specified pointer has an alignment that we can determine, return it, otherwise return 0. If PrefAlign is specified, and it is more than the alignment of the ultimate object, see if we can increase the alignment of the ultimate object, making this check succeed.

Definition at line 944 of file Local.cpp.

References Align(), assert(), computeKnownBits(), enforceKnownAlignment(), llvm::DataLayout::getPointerTypeSizeInBits(), llvm::Value::getType(), llvm::Type::isPointerTy(), and llvm::Value::MaximumAlignment.

Referenced by getKnownAlignment(), HandleByValArgument(), llvm::InstCombiner::visitAllocaInst(), llvm::InstCombiner::visitCallInst(), llvm::InstCombiner::visitLoadInst(), and llvm::InstCombiner::visitStoreInst().

BasicBlock * llvm::getParentBlock ( Value v)

Definition at line 442 of file NVPTXUtilities.cpp.

References I.

Function * llvm::getParentFunction ( Value v)

Definition at line 452 of file NVPTXUtilities.cpp.

References F(), and I.

Referenced by dumpBlock(), and getInst().

Timer * llvm::getPassTimer ( Pass P)
Value * llvm::GetPointerBaseWithConstantOffset ( Value Ptr,
int64_t &  Offset,
const DataLayout DL 
)

GetPointerBaseWithConstantOffset - Analyze the specified pointer to see if it can be expressed as a base pointer plus a constant offset. Return the base and offset to the caller.

Analyze the specified pointer to see if it can be expressed as a base pointer plus a constant offset. Return the base and offset to the caller.

Definition at line 2288 of file ValueTracking.cpp.

References llvm::Operator::getOpcode(), llvm::DataLayout::getPointerTypeSizeInBits(), llvm::APInt::getSExtValue(), llvm::Value::getType(), and llvm::Type::isVectorTy().

Referenced by AnalyzeLoadFromClobberingLoad(), AnalyzeLoadFromClobberingWrite(), llvm::MemoryDependenceAnalysis::getLoadLoadClobberFullWidthSize(), GetPointerBaseWithConstantOffset(), isLoadLoadClobberIfExtendedToFullWidth(), isOverwrite(), and isSafeToLoadUnconditionally().

static const Value* llvm::GetPointerBaseWithConstantOffset ( const Value *  Ptr,
int64_t &  Offset,
const DataLayout *  TD 
)
inlinestatic

Definition at line 142 of file ValueTracking.h.

References GetPointerBaseWithConstantOffset().

static const char* llvm::getPredicateText ( unsigned  predicate)
static
bool llvm::getReqNTIDx ( const llvm::Function F,
unsigned x 
)
bool llvm::getReqNTIDy ( const llvm::Function F,
unsigned y 
)
bool llvm::getReqNTIDz ( const llvm::Function F,
unsigned z 
)
void llvm::GetReturnInfo ( Type ReturnType,
AttributeSet  attr,
SmallVectorImpl< ISD::OutputArg > &  Outs,
const TargetLowering TLI 
)

Given an LLVM IR type and return type attributes, compute the return value EVTs and flags, and optionally also the offsets, if the return value is being lowered to memory.

Get the EVTs and ArgFlags collections that represent the legalized return type of the given function. This does not require a DAG or a return value, and is suitable for use before any DAGs for the function are constructed. TODO: Move this out of TargetLowering.cpp.

Definition at line 1319 of file TargetLoweringBase.cpp.

References llvm::ISD::ANY_EXTEND, llvm::EVT::bitsLT(), ComputeValueVTs(), llvm::Type::getContext(), llvm::TargetLoweringBase::getNumRegisters(), llvm::TargetLoweringBase::getRegisterType(), llvm::AttributeSet::hasAttribute(), llvm::MVT::i32, llvm::Attribute::InReg, llvm::EVT::isInteger(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::AttributeSet::ReturnIndex, llvm::ISD::ArgFlagsTy::setInReg(), llvm::ISD::ArgFlagsTy::setSExt(), llvm::ISD::ArgFlagsTy::setZExt(), llvm::Attribute::SExt, llvm::ISD::SIGN_EXTEND, llvm::SmallVectorTemplateCommon< T >::size(), llvm::ISD::ZERO_EXTEND, and llvm::Attribute::ZExt.

Referenced by llvm::FastISel::lowerCallTo(), llvm::TargetLowering::LowerCallTo(), and llvm::FunctionLoweringInfo::set().

std::string llvm::getSamplerName ( const llvm::Value val)

Definition at line 252 of file NVPTXUtilities.cpp.

References assert(), llvm::Value::getName(), and llvm::Value::hasName().

unsigned llvm::getSLEB128Size ( int64_t  Value)

Utility function to get the size of the SLEB128-encoded value.

Definition at line 30 of file LEB128.cpp.

Referenced by llvm::EHStreamer::computeActionsTable(), and llvm::DIEInteger::SizeOf().

BasicBlock* llvm::getSourceGraphNode ( Function *  ,
BasicBlock *  BB 
)
inline
Interval* llvm::getSourceGraphNode ( IntervalPartition *  IP,
BasicBlock *  BB 
)
inline

Definition at line 59 of file IntervalIterator.h.

References llvm::IntervalPartition::getBlockInterval().

ErrorOr< std::unique_ptr< Module > > llvm::getStreamedBitcodeModule ( StringRef  Name,
DataStreamer Streamer,
LLVMContext Context,
DiagnosticHandlerFunction  DiagnosticHandler = nullptr 
)

Read the header of the specified stream and prepare for lazy deserialization and streaming of function bodies.

Definition at line 3726 of file BitcodeReader.cpp.

References Name.

uint64_t llvm::GetStringLength ( Value V)

GetStringLength - If we can compute the length of the string pointed to by the specified pointer, return 'len+1'. If we can't, return 0.

If we can compute the length of the string pointed to by the specified pointer, return 'len+1'. If we can't, return 0.

Definition at line 2461 of file ValueTracking.cpp.

References GetStringLengthH(), llvm::Value::getType(), and llvm::Type::isPointerTy().

Referenced by llvm::ObjectSizeOffsetVisitor::visitCallSite().

unsigned llvm::GetSuccessorNumber ( BasicBlock BB,
BasicBlock Succ 
)

Search for the specified successor of basic block BB and return its position in the terminator instruction's list of successors. It is an error to call this with a block that is not a successor.

GetSuccessorNumber - Search for the specified successor of basic block BB and return its position in the terminator instruction's list of successors. It is an error to call this with a block that is not a successor.

Definition at line 72 of file CFG.cpp.

References assert(), llvm::TerminatorInst::getNumSuccessors(), llvm::TerminatorInst::getSuccessor(), and llvm::BasicBlock::getTerminator().

Referenced by DemoteRegToStack(), SplitCriticalSideEffectEdges(), and SplitEdge().

std::string llvm::getSurfaceName ( const llvm::Value val)

Definition at line 247 of file NVPTXUtilities.cpp.

References assert(), llvm::Value::getName(), and llvm::Value::hasName().

std::string llvm::getTextureName ( const llvm::Value val)

Definition at line 242 of file NVPTXUtilities.cpp.

References assert(), llvm::Value::getName(), and llvm::Value::hasName().

std::pair< StringRef, StringRef > llvm::getToken ( StringRef  Source,
StringRef  Delimiters = " \t\n\v\f\r" 
)

getToken - This function extracts one token from source, ignoring any leading characters that appear in the Delimiters string, and ending the token at any of the characters that appear in the Delimiters string. If there are no tokens in the source string, an empty string is returned. The function returns a pair containing the extracted token and the remaining tail string.

Definition at line 38 of file StringExtras.cpp.

References llvm::StringRef::find_first_not_of(), llvm::StringRef::find_first_of(), llvm::StringRef::slice(), and llvm::StringRef::substr().

Referenced by llvm::LTOCodeGenerator::setCodeGenDebugOptions(), and SplitString().

unsigned llvm::getULEB128Size ( uint64_t  Value)
unsigned llvm::getUndefRegState ( bool  B)
inline
Value * llvm::GetUnderlyingObject ( Value V,
const DataLayout TD = nullptr,
unsigned  MaxLookup = 6 
)

GetUnderlyingObject - This method strips off any GEP address adjustments and pointer casts from the specified value, returning the original object being addressed. Note that the returned value has pointer type if the specified value does. If the MaxLookup value is non-zero, it limits the number of instructions to be stripped off.

Definition at line 2472 of file ValueTracking.cpp.

References assert(), llvm::Operator::getOpcode(), llvm::Value::getType(), I, llvm::Type::isPointerTy(), llvm::JumpTable::Simplified, and SimplifyInstruction().

Referenced by AnalyzeLoadFromClobberingMemInst(), llvm::AliasAnalysis::callCapturesBefore(), ConstantFoldLoadFromConstPtr(), llvm::MemoryDependenceAnalysis::getPointerDependencyFrom(), llvm::objcarc::GetUnderlyingObjCPtr(), GetUnderlyingObject(), GetUnderlyingObjects(), InstructionDereferencesPointer(), isOverwrite(), and underlyingObjectsAlias().

static const Value* llvm::GetUnderlyingObject ( const Value *  V,
const DataLayout *  TD = nullptr,
unsigned  MaxLookup = 6 
)
inlinestatic

Definition at line 168 of file ValueTracking.h.

References GetUnderlyingObject().

void llvm::GetUnderlyingObjects ( Value V,
SmallVectorImpl< Value * > &  Objects,
const DataLayout TD = nullptr,
unsigned  MaxLookup = 6 
)

GetUnderlyingObjects - This method is similar to GetUnderlyingObject except that it can look through phi and select instructions and return multiple objects.

Definition at line 2502 of file ValueTracking.cpp.

References llvm::SmallVectorBase::empty(), GetUnderlyingObject(), llvm::SmallPtrSetImpl< PtrType >::insert(), P, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), and SI.

Referenced by AddAliasScopeMetadata(), computePointerICmp(), and getUnderlyingObjects().

static unsigned llvm::getWRegFromXReg ( unsigned  Reg)
inlinestatic

Definition at line 29 of file AArch64BaseInfo.h.

Referenced by llvm::AArch64InstPrinter::printInst().

unsigned llvm::getX86SubSuperRegister ( unsigned  Reg,
MVT::SimpleValueType  VT,
bool  High 
)
static unsigned llvm::getXRegFromWReg ( unsigned  Reg)
inlinestatic

Definition at line 69 of file AArch64BaseInfo.h.

uint64_t llvm::GreatestCommonDivisor64 ( uint64_t  A,
uint64_t  B 
)
inline

GreatestCommonDivisor64 - Return the greatest common divisor of the two values using Euclid's algorithm.

Definition at line 476 of file MathExtras.h.

References llvm::ARM_PROC::A, and T.

Referenced by llvm::NVPTXTargetLowering::LowerCall(), and UnrollLoop().

void* llvm::GVTOP ( const GenericValue &  GV)
inline
template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
hash_code llvm::hash_combine ( const T1 arg1,
const T2 &  arg2,
const T3 &  arg3,
const T4 &  arg4,
const T5 &  arg5,
const T6 &  arg6 
)
template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
hash_code llvm::hash_combine ( const T1 arg1,
const T2 &  arg2,
const T3 &  arg3,
const T4 &  arg4,
const T5 &  arg5 
)
template<typename T1 , typename T2 , typename T3 , typename T4 >
hash_code llvm::hash_combine ( const T1 arg1,
const T2 &  arg2,
const T3 &  arg3,
const T4 &  arg4 
)
template<typename T1 , typename T2 , typename T3 >
hash_code llvm::hash_combine ( const T1 arg1,
const T2 &  arg2,
const T3 &  arg3 
)
template<typename T1 , typename T2 >
hash_code llvm::hash_combine ( const T1 arg1,
const T2 &  arg2 
)
template<typename T1 >
hash_code llvm::hash_combine ( const T1 arg1)
template<typename InputIteratorT >
hash_code llvm::hash_combine_range ( InputIteratorT  first,
InputIteratorT  last 
)

Compute a hash_code for a sequence of values.

This hashes a sequence of values. It produces the same hash_code as 'hash_combine(a, b, c, ...)', but can run over arbitrary sized sequences and is significantly faster given pointers and types which can be hashed as a sequence of bytes.

Definition at line 486 of file Hashing.h.

References llvm::hashing::detail::hash_combine_range_impl().

Referenced by llvm::FoldingSetNodeIDRef::ComputeHash(), llvm::ConstantAggrKeyType< ConstantClass >::getHash(), llvm::ConstantExprKeyType::getHash(), llvm::Linker::StructTypeKeyInfo::getHashValue(), llvm::AnonStructTypeKeyInfo::getHashValue(), llvm::FunctionTypeKeyInfo::getHashValue(), llvm::MachineInstrExpressionTrait::getHashValue(), llvm::PBQP::RegAlloc::hash_value(), llvm::PBQP::hash_value(), and hash_value().

template<typename T >
std::enable_if< is_integral_or_enum< T >::value, hash_code >::type llvm::hash_value ( T  value)

Compute a hash_code for any integer value.

Note that this function is intended to compute the same hash_code for a particular value without regard to the pre-promotion type. This is in contrast to hash_combine which may produce different hash_codes for differing argument types even if they would implicit promote to a common type without changing the value.

Definition at line 737 of file Hashing.h.

References llvm::hashing::detail::hash_integer_value().

template<typename T >
hash_code llvm::hash_value ( const T ptr)

Compute a hash_code for a pointer's address.

N.B.: This hashes the address. Not the value and not the type.

Definition at line 743 of file Hashing.h.

References llvm::hashing::detail::hash_integer_value().

template<typename T , typename U >
hash_code llvm::hash_value ( const std::pair< T, U > &  arg)

Compute a hash_code for a pair of objects.

Definition at line 751 of file Hashing.h.

References hash_combine().

template<typename T >
hash_code llvm::hash_value ( const std::basic_string< T > &  arg)

Compute a hash_code for a standard string.

Definition at line 758 of file Hashing.h.

References hash_combine_range().

Referenced by llvm::hashing::detail::get_hashable_data().

hash_code llvm::hash_value ( StringRef  S)

Compute a hash_code for a StringRef.

Definition at line 483 of file StringRef.cpp.

References llvm::StringRef::begin(), llvm::StringRef::end(), and hash_combine_range().

hash_code llvm::hash_value ( const APFloat Arg)
hash_code llvm::hash_value ( const MachineOperand MO)

Note that this includes the same information in the hash that isIdenticalTo uses for comparison. It is thus suited for use in hash tables which use that function for equality comparisons only.

Definition at line 234 of file MachineInstr.cpp.

References llvm::MachineOperand::getBlockAddress(), llvm::MachineOperand::getCFIIndex(), llvm::MachineOperand::getCImm(), llvm::MachineOperand::getFPImm(), llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineOperand::getMBB(), llvm::MachineOperand::getMCSymbol(), llvm::MachineOperand::getMetadata(), llvm::MachineOperand::getOffset(), llvm::MachineOperand::getReg(), llvm::MachineOperand::getRegMask(), llvm::MachineOperand::getSubReg(), llvm::MachineOperand::getSymbolName(), llvm::MachineOperand::getTargetFlags(), llvm::MachineOperand::getType(), hash_combine(), llvm::MachineOperand::isDef(), llvm_unreachable, llvm::MachineOperand::MO_BlockAddress, llvm::MachineOperand::MO_CFIIndex, llvm::MachineOperand::MO_CImmediate, llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_ExternalSymbol, llvm::MachineOperand::MO_FPImmediate, llvm::MachineOperand::MO_FrameIndex, llvm::MachineOperand::MO_GlobalAddress, llvm::MachineOperand::MO_Immediate, llvm::MachineOperand::MO_JumpTableIndex, llvm::MachineOperand::MO_MachineBasicBlock, llvm::MachineOperand::MO_MCSymbol, llvm::MachineOperand::MO_Metadata, llvm::MachineOperand::MO_Register, llvm::MachineOperand::MO_RegisterLiveOut, llvm::MachineOperand::MO_RegisterMask, and llvm::MachineOperand::MO_TargetIndex.

hash_code llvm::hash_value ( const APInt Arg)
static unsigned llvm::HashString ( StringRef  Str,
unsigned  Result = 0 
)
inlinestatic

HashString - Hash function for strings.

This is the Bernstein hash function.

Definition at line 143 of file StringExtras.h.

References llvm::StringRef::size().

Referenced by llvm::StringMapImpl::FindKey(), and llvm::StringMapImpl::LookupBucketFor().

bool llvm::hasInlineAsmMemConstraint ( InlineAsm::ConstraintInfoVector CInfos,
const TargetLowering TLI 
)

hasInlineAsmMemConstraint - Return true if the inline asm instruction being processed uses a memory 'm' constraint.

Definition at line 139 of file CodeGen/Analysis.cpp.

References llvm::TargetLowering::C_Memory, llvm::InlineAsm::ConstraintInfo::Codes, llvm::TargetLowering::getConstraintType(), and llvm::InlineAsm::ConstraintInfo::isIndirect.

bool llvm::hasUTF16ByteOrderMark ( ArrayRef< char >  S)

Definition at line 78 of file ConvertUTFWrapper.cpp.

References llvm::ArrayRef< T >::size().

Referenced by ExpandResponseFile().

static bool llvm::hasVectorInstrinsicScalarOpd ( Intrinsic::ID  ID,
unsigned  ScalarOpdIdx 
)
static

Definition at line 62 of file VectorUtils.h.

References llvm::Intrinsic::ctlz, llvm::Intrinsic::cttz, and llvm::Intrinsic::powi.

void llvm::HexagonLowerToMC ( const MachineInstr MI,
HexagonMCInst MCI,
HexagonAsmPrinter AP 
)

Definition at line 42 of file HexagonMCInstLower.cpp.

References llvm::MCInst::addOperand(), llvm::APFloat::bitcastToAPInt(), llvm::MCSymbolRefExpr::Create(), llvm::MCOperand::CreateExpr(), llvm::MCOperand::CreateImm(), llvm::MCOperand::CreateReg(), llvm::MachineInstr::dump(), llvm::MachineOperand::getBlockAddress(), llvm::AsmPrinter::GetBlockAddressSymbol(), llvm::AsmPrinter::GetCPISymbol(), llvm::AsmPrinter::GetExternalSymbolSymbol(), llvm::MachineOperand::getFPImm(), llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::AsmPrinter::GetJTISymbol(), llvm::MachineOperand::getMBB(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::APInt::getRawData(), llvm::MachineOperand::getReg(), llvm::AsmPrinter::getSymbol(), llvm::MachineBasicBlock::getSymbol(), llvm::MachineOperand::getSymbolName(), GetSymbolRef(), llvm::MachineOperand::getType(), llvm::ConstantFP::getValueAPF(), llvm::MachineOperand::isImplicit(), llvm_unreachable, llvm::MachineOperand::MO_BlockAddress, llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_ExternalSymbol, llvm::MachineOperand::MO_FPImmediate, llvm::MachineOperand::MO_GlobalAddress, llvm::MachineOperand::MO_Immediate, llvm::MachineOperand::MO_JumpTableIndex, llvm::MachineOperand::MO_MachineBasicBlock, llvm::MachineOperand::MO_Register, llvm::AsmPrinter::OutContext, and llvm::MCInst::setOpcode().

Referenced by llvm::HexagonAsmPrinter::EmitInstruction().

static char llvm::hexdigit ( unsigned  X,
bool  LowerCase = false 
)
inlinestatic

hexdigit - Return the hexadecimal character for the given number X (which should be less than 16).

Definition at line 26 of file StringExtras.h.

Referenced by llvm::MCFragment::dump(), PrintEscapedString(), llvm::AssemblyWriter::printNamedMDNode(), utohex_buffer(), and llvm::yaml::BinaryRef::writeAsHex().

static unsigned llvm::hexDigitValue ( char  C)
inlinestatic

Interpret the given character C as a hexadecimal digit and return its value.

If C is not a valid hex digit, -1U is returned.

Definition at line 40 of file StringExtras.h.

Referenced by trailingHexadecimalFraction(), and UnEscapeLexed().

static unsigned llvm::HI22 ( int64_t  imm)
inlinestatic

Definition at line 117 of file Sparc.h.

Referenced by HIX22(), and replaceFI().

uint32_t llvm::Hi_32 ( uint64_t  Value)
inline

Hi_32 - This function returns the high 32 bits of a 64 bit value.

Definition at line 254 of file MathExtras.h.

static unsigned llvm::HIX22 ( int64_t  imm)
inlinestatic

Definition at line 125 of file Sparc.h.

References HI22().

Referenced by replaceFI().

template<class T >
idf_iterator<T> llvm::idf_begin ( const T G)
template<class T >
idf_iterator<T> llvm::idf_end ( const T G)
template<class T , class SetTy >
idf_ext_iterator<T, SetTy> llvm::idf_ext_begin ( const T G,
SetTy S 
)
template<class T , class SetTy >
idf_ext_iterator<T, SetTy> llvm::idf_ext_end ( const T G,
SetTy S 
)
void llvm::initializeAAEvalPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeAArch64AddressTypePromotionPass ( PassRegistry )
void llvm::initializeAArch64CollectLOHPass ( PassRegistry )
void llvm::initializeAArch64ConditionalComparesPass ( PassRegistry )
void llvm::initializeAArch64ConditionOptimizerPass ( PassRegistry )
void llvm::initializeAArch64PromoteConstantPass ( PassRegistry )
void llvm::initializeAArch64TTIPass ( PassRegistry )
void llvm::initializeADCEPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeAddDiscriminatorsPass ( PassRegistry &  )
void llvm::initializeAddressSanitizerModulePass ( PassRegistry &  )
void llvm::initializeAddressSanitizerPass ( PassRegistry &  )
void llvm::initializeAliasAnalysisAnalysisGroup ( PassRegistry &  )
void llvm::initializeAliasAnalysisCounterPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeAliasDebuggerPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeAliasSetPrinterPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeAlignmentFromAssumptionsPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::InitializeAllAsmParsers ( )
inline

InitializeAllAsmParsers - The main program should call this function if it wants all asm parsers that LLVM is configured to support, to make them available via the TargetRegistry.

It is legal for a client to make multiple calls to this function.

Definition at line 96 of file TargetSelect.h.

void llvm::InitializeAllAsmPrinters ( )
inline

InitializeAllAsmPrinters - The main program should call this function if it wants all asm printers that LLVM is configured to support, to make them available via the TargetRegistry.

It is legal for a client to make multiple calls to this function.

Definition at line 86 of file TargetSelect.h.

void llvm::InitializeAllDisassemblers ( )
inline

InitializeAllDisassemblers - The main program should call this function if it wants all disassemblers that LLVM is configured to support, to make them available via the TargetRegistry.

It is legal for a client to make multiple calls to this function.

Definition at line 106 of file TargetSelect.h.

void llvm::InitializeAllTargetInfos ( )
inline

InitializeAllTargetInfos - The main program should call this function if it wants access to all available targets that LLVM is configured to support, to make them available via the TargetRegistry.

It is legal for a client to make multiple calls to this function.

Definition at line 53 of file TargetSelect.h.

Referenced by InitializeAllTargets().

void llvm::InitializeAllTargetMCs ( )
inline

InitializeAllTargetMCs - The main program should call this function if it wants access to all available target MC that LLVM is configured to support, to make them available via the TargetRegistry.

It is legal for a client to make multiple calls to this function.

Definition at line 76 of file TargetSelect.h.

void llvm::InitializeAllTargets ( )
inline

InitializeAllTargets - The main program should call this function if it wants access to all available target machines that LLVM is configured to support, to make them available via the TargetRegistry.

It is legal for a client to make multiple calls to this function.

Definition at line 63 of file TargetSelect.h.

References InitializeAllTargetInfos().

void llvm::initializeAlwaysInlinerPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeAMDGPUCFGStructurizerPass ( PassRegistry )
void llvm::initializeAMDGPUTTIPass ( PassRegistry )
void llvm::initializeAnalysis ( PassRegistry Registry)

initializeAnalysis - Initialize all passes linked into the Analysis library.

Definition at line 22 of file Analysis/Analysis.cpp.

References initializeAAEvalPass(), initializeAliasAnalysisAnalysisGroup(), initializeAliasAnalysisCounterPass(), initializeAliasDebuggerPass(), initializeAliasSetPrinterPass(), initializeBasicAliasAnalysisPass(), initializeBlockFrequencyInfoPass(), initializeBranchProbabilityInfoPass(), initializeCFGOnlyPrinterPass(), initializeCFGOnlyViewerPass(), initializeCFGPrinterPass(), initializeCFGViewerPass(), initializeCFLAliasAnalysisPass(), initializeCostModelAnalysisPass(), initializeDelinearizationPass(), initializeDependenceAnalysisPass(), initializeDominanceFrontierPass(), initializeDomOnlyPrinterPass(), initializeDomOnlyViewerPass(), initializeDomPrinterPass(), initializeDomViewerPass(), initializeInstCountPass(), initializeIntervalPartitionPass(), initializeIVUsersPass(), initializeJumpInstrTableInfoPass(), initializeLazyValueInfoPass(), initializeLibCallAliasAnalysisPass(), initializeLintPass(), initializeLoopInfoPass(), initializeMemDepPrinterPass(), initializeMemoryDependenceAnalysisPass(), initializeModuleDebugInfoPrinterPass(), initializeNoAAPass(), initializePostDominatorTreePass(), initializePostDomOnlyPrinterPass(), initializePostDomOnlyViewerPass(), initializePostDomPrinterPass(), initializePostDomViewerPass(), initializeRegionInfoPassPass(), initializeRegionOnlyPrinterPass(), initializeRegionOnlyViewerPass(), initializeRegionPrinterPass(), initializeRegionViewerPass(), initializeScalarEvolutionAliasAnalysisPass(), initializeScalarEvolutionPass(), initializeScopedNoAliasAAPass(), initializeTargetTransformInfoAnalysisGroup(), and initializeTypeBasedAliasAnalysisPass().

Referenced by LLVMInitializeAnalysis().

void llvm::initializeArgPromotionPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeARMTTIPass ( PassRegistry )
void llvm::initializeAssumptionCacheTrackerPass ( PassRegistry &  )
void llvm::initializeAtomicExpandPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeBarrierNoopPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeBasicAliasAnalysisPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeBasicTTIPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeBBVectorizePass ( PassRegistry &  )

Referenced by initializeVectorization().

void llvm::initializeBlockExtractorPassPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeBlockFrequencyInfoPass ( PassRegistry &  )
void llvm::initializeBoundsCheckingPass ( PassRegistry &  )
void llvm::initializeBranchFolderPassPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeBranchProbabilityInfoPass ( PassRegistry &  )
void llvm::initializeBreakCriticalEdgesPass ( PassRegistry &  )
void llvm::initializeCallGraphPrinterPass ( PassRegistry &  )

Referenced by initializeIPA().

void llvm::initializeCallGraphViewerPass ( PassRegistry &  )

Referenced by initializeIPA().

void llvm::initializeCallGraphWrapperPassPass ( PassRegistry &  )
void llvm::initializeCFGOnlyPrinterPass ( PassRegistry &  )
void llvm::initializeCFGOnlyViewerPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeCFGPrinterPass ( PassRegistry &  )
void llvm::initializeCFGSimplifyPassPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeCFGViewerPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeCFLAliasAnalysisPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeCodeGen ( PassRegistry Registry)

initializeCodeGen - Initialize all passes linked into the CodeGen library.

Definition at line 22 of file CodeGen.cpp.

References initializeAtomicExpandPass(), initializeBasicTTIPass(), initializeBranchFolderPassPass(), initializeCodeGenPreparePass(), initializeDeadMachineInstructionElimPass(), initializeEarlyIfConverterPass(), initializeExpandISelPseudosPass(), initializeExpandPostRAPass(), initializeFinalizeMachineBundlesPass(), initializeGCMachineCodeAnalysisPass(), initializeGCModuleInfoPass(), initializeIfConverterPass(), initializeLiveDebugVariablesPass(), initializeLiveIntervalsPass(), initializeLiveStacksPass(), initializeLiveVariablesPass(), initializeLocalStackSlotPassPass(), initializeLowerIntrinsicsPass(), initializeMachineBlockFrequencyInfoPass(), initializeMachineBlockPlacementPass(), initializeMachineBlockPlacementStatsPass(), initializeMachineCombinerPass(), initializeMachineCopyPropagationPass(), initializeMachineCSEPass(), initializeMachineDominatorTreePass(), initializeMachineFunctionPrinterPassPass(), initializeMachineLICMPass(), initializeMachineLoopInfoPass(), initializeMachineModuleInfoPass(), initializeMachinePostDominatorTreePass(), initializeMachineSchedulerPass(), initializeMachineSinkingPass(), initializeMachineVerifierPassPass(), initializeOptimizePHIsPass(), initializePeepholeOptimizerPass(), initializePEIPass(), initializePHIEliminationPass(), initializePostMachineSchedulerPass(), initializePostRASchedulerPass(), initializeProcessImplicitDefsPass(), initializeRegisterCoalescerPass(), initializeSlotIndexesPass(), initializeStackColoringPass(), initializeStackMapLivenessPass(), initializeStackProtectorPass(), initializeStackSlotColoringPass(), initializeTailDuplicatePassPass(), initializeTargetPassConfigPass(), initializeTwoAddressInstructionPassPass(), initializeUnpackMachineBundlesPass(), initializeUnreachableBlockElimPass(), initializeUnreachableMachineBlockElimPass(), initializeVirtRegMapPass(), and initializeVirtRegRewriterPass().

Referenced by LLVMInitializeCodeGen(), and llvm::TargetPassConfig::TargetPassConfig().

void llvm::initializeCodeGenPreparePass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeConstantHoistingPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeConstantMergePass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeConstantPropagationPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeCore ( PassRegistry Registry)

initializeCore - Initialize all passes linked into the TransformUtils library.

Definition at line 47 of file Core.cpp.

References initializeDominatorTreeWrapperPassPass(), initializePrintBasicBlockPassPass(), initializePrintFunctionPassWrapperPass(), initializePrintModulePassWrapperPass(), and initializeVerifierLegacyPassPass().

Referenced by LLVMInitializeCore().

void llvm::initializeCorrelatedValuePropagationPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeCostModelAnalysisPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeDAEPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeDAHPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeDataFlowSanitizerPass ( PassRegistry &  )
void llvm::initializeDataLayoutPassPass ( PassRegistry &  )
void llvm::initializeDCEPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeDeadInstEliminationPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeDeadMachineInstructionElimPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeDebugInfoVerifierLegacyPassPass ( PassRegistry &  )
void llvm::initializeDelinearizationPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeDependenceAnalysisPass ( PassRegistry &  )
void llvm::initializeDominanceFrontierPass ( PassRegistry &  )
void llvm::initializeDominatorTreeWrapperPassPass ( PassRegistry &  )
void llvm::initializeDomOnlyPrinterPass ( PassRegistry &  )
void llvm::initializeDomOnlyViewerPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeDomPrinterPass ( PassRegistry &  )
void llvm::initializeDomViewerPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeDSEPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeEarlyCSEPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeEarlyIfConverterPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeEdgeBundlesPass ( PassRegistry &  )
void llvm::initializeExpandISelPseudosPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeExpandPostRAPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeFinalizeMachineBundlesPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeFlattenCFGPassPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeForwardControlFlowIntegrityPass ( PassRegistry &  )
void llvm::initializeFunctionAttrsPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeFunctionTargetTransformInfoPass ( PassRegistry &  )
void llvm::initializeGCMachineCodeAnalysisPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeGCModuleInfoPass ( PassRegistry &  )
void llvm::initializeGCOVProfilerPass ( PassRegistry &  )
void llvm::initializeGenericToNVVMPass ( PassRegistry )
void llvm::initializeGlobalDCEPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeGlobalMergePass ( PassRegistry &  )
void llvm::initializeGlobalOptPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeGlobalsModRefPass ( PassRegistry &  )

Referenced by initializeIPA().

void llvm::initializeGVNPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeHexagonCFGOptimizerPass ( PassRegistry Registry)

Definition at line 247 of file HexagonCFGOptimizer.cpp.

References CALL_ONCE_INITIALIZATION, and initializePassOnce().

void llvm::initializeHexagonCopyToCombinePass ( PassRegistry )
void llvm::initializeHexagonDAGToDAGISelPass ( PassRegistry Registry)

Definition at line 194 of file HexagonISelDAGToDAG.cpp.

References CALL_ONCE_INITIALIZATION, and initializePassOnce().

void llvm::initializeHexagonExpandPredSpillCodePass ( PassRegistry Registry)
void llvm::initializeHexagonFixupHwLoopsPass ( PassRegistry )
void llvm::initializeHexagonHardwareLoopsPass ( PassRegistry )
void llvm::initializeHexagonNewValueJumpPass ( PassRegistry )
void llvm::initializeHexagonPacketizerPass ( PassRegistry )
void llvm::initializeHexagonPeepholePass ( PassRegistry )
void llvm::initializeHexagonRemoveExtendArgsPass ( PassRegistry )
void llvm::initializeHexagonSplitTFRCondSetsPass ( PassRegistry Registry)

Definition at line 228 of file HexagonSplitTFRCondSets.cpp.

References CALL_ONCE_INITIALIZATION, and initializePassOnce().

void llvm::initializeIfConverterPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeIndVarSimplifyPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeInlineCostAnalysisPass ( PassRegistry &  )
void llvm::initializeInstCombine ( PassRegistry Registry)

initializeInstCombine - Initialize all passes linked into the ScalarOpts library.

Definition at line 76 of file InstructionCombining.cpp.

References initializeInstCombinerPass().

Referenced by LLVMInitializeInstCombine().

void llvm::initializeInstCombinerPass ( PassRegistry &  )
void llvm::initializeInstCountPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeInstNamerPass ( PassRegistry &  )
void llvm::initializeInstrProfilingPass ( PassRegistry &  )
void llvm::initializeInstrumentation ( PassRegistry Registry)

initializeInstrumentation - Initialize all passes linked into the Instrumentation library.

initializeInstrumentation - Initialize all passes in the TransformUtils library.

Definition at line 23 of file Instrumentation.cpp.

References initializeAddressSanitizerModulePass(), initializeAddressSanitizerPass(), initializeBoundsCheckingPass(), initializeDataFlowSanitizerPass(), initializeGCOVProfilerPass(), initializeInstrProfilingPass(), initializeMemorySanitizerPass(), initializeSanitizerCoverageModulePass(), and initializeThreadSanitizerPass().

Referenced by LLVMInitializeInstrumentation().

void llvm::initializeInstSimplifierPass ( PassRegistry &  )
void llvm::initializeInternalizePassPass ( PassRegistry &  )

Referenced by INITIALIZE_PASS(), and initializeIPO().

void llvm::initializeIntervalPartitionPass ( PassRegistry &  )
void llvm::initializeIPA ( PassRegistry Registry)

initializeIPA - Initialize all passes linked into the IPA library.

Definition at line 21 of file IPA.cpp.

References initializeCallGraphPrinterPass(), initializeCallGraphViewerPass(), initializeCallGraphWrapperPassPass(), and initializeGlobalsModRefPass().

Referenced by LLVMInitializeIPA().

void llvm::initializeIPCPPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeIPO ( PassRegistry Registry)
void llvm::initializeIPSCCPPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeIVUsersPass ( PassRegistry &  )
void llvm::initializeJumpInstrTableInfoPass ( PassRegistry &  )
void llvm::initializeJumpInstrTablesPass ( PassRegistry &  )
void llvm::initializeJumpThreadingPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeLazyValueInfoPass ( PassRegistry &  )
void llvm::initializeLCSSAPass ( PassRegistry &  )
void llvm::initializeLibCallAliasAnalysisPass ( PassRegistry &  )
void llvm::initializeLICMPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeLintPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeLiveDebugVariablesPass ( PassRegistry &  )
void llvm::initializeLiveIntervalsPass ( PassRegistry &  )
void llvm::initializeLiveRegMatrixPass ( PassRegistry &  )
void llvm::initializeLiveStacksPass ( PassRegistry &  )
void llvm::initializeLiveVariablesPass ( PassRegistry &  )
void llvm::initializeLoadCombinePass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeLoaderPassPass ( PassRegistry &  )
void llvm::initializeLocalStackSlotPassPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeLoopDeletionPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeLoopExtractorPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeLoopIdiomRecognizePass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeLoopInfoPass ( PassRegistry &  )
void llvm::initializeLoopInstSimplifyPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeLoopRerollPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeLoopRotatePass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeLoopSimplifyPass ( PassRegistry &  )
void llvm::initializeLoopStrengthReducePass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeLoopUnrollPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeLoopUnswitchPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeLoopVectorizePass ( PassRegistry &  )

Referenced by initializeVectorization().

void llvm::initializeLowerAtomicPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeLowerExpectIntrinsicPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeLowerIntrinsicsPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeLowerInvokePass ( PassRegistry &  )
void llvm::initializeLowerSwitchPass ( PassRegistry &  )
void llvm::initializeMachineBlockFrequencyInfoPass ( PassRegistry &  )
void llvm::initializeMachineBlockPlacementPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeMachineBlockPlacementStatsPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeMachineBranchProbabilityInfoPass ( PassRegistry &  )
void llvm::initializeMachineCombinerPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeMachineCopyPropagationPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeMachineCSEPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeMachineDominanceFrontierPass ( PassRegistry &  )
void llvm::initializeMachineDominatorTreePass ( PassRegistry &  )
void llvm::initializeMachineFunctionPrinterPassPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeMachineLICMPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeMachineLoopInfoPass ( PassRegistry &  )
void llvm::initializeMachineModuleInfoPass ( PassRegistry &  )
void llvm::initializeMachinePostDominatorTreePass ( PassRegistry &  )
void llvm::initializeMachineRegionInfoPassPass ( PassRegistry &  )
void llvm::initializeMachineSchedulerPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeMachineSinkingPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeMachineTraceMetricsPass ( PassRegistry &  )
void llvm::initializeMachineVerifierPassPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeMemCpyOptPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeMemDepPrinterPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeMemoryDependenceAnalysisPass ( PassRegistry &  )
void llvm::initializeMemorySanitizerPass ( PassRegistry &  )
void llvm::initializeMergedLoadStoreMotionPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeMergeFunctionsPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeMetaRenamerPass ( PassRegistry &  )
void llvm::initializeModuleDebugInfoPrinterPass ( PassRegistry &  )

Referenced by initializeAnalysis().

bool llvm::InitializeNativeTarget ( )
inline

InitializeNativeTarget - The main program should call this function to initialize the native target corresponding to the host. This is useful for JIT applications to ensure that the target gets linked in correctly.

It is legal for a client to make multiple calls to this function.

Definition at line 116 of file TargetSelect.h.

bool llvm::InitializeNativeTargetAsmParser ( )
inline

InitializeNativeTargetAsmParser - The main program should call this function to initialize the native target asm parser.

Definition at line 142 of file TargetSelect.h.

bool llvm::InitializeNativeTargetAsmPrinter ( )
inline

InitializeNativeTargetAsmPrinter - The main program should call this function to initialize the native target asm printer.

Definition at line 130 of file TargetSelect.h.

bool llvm::InitializeNativeTargetDisassembler ( )
inline

InitializeNativeTargetDisassembler - The main program should call this function to initialize the native target disassembler.

Definition at line 154 of file TargetSelect.h.

void llvm::initializeNoAAPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeNoTTIPass ( PassRegistry &  )
void llvm::initializeNVPTXAssignValidGlobalNamesPass ( PassRegistry )
void llvm::initializeNVPTXFavorNonGenericAddrSpacesPass ( PassRegistry )
void llvm::initializeNVPTXLowerStructArgsPass ( PassRegistry )
void llvm::initializeNVPTXTTIPass ( PassRegistry )
void llvm::initializeNVVMReflectPass ( PassRegistry )
void llvm::initializeObjCARCAliasAnalysisPass ( PassRegistry &  )
void llvm::initializeObjCARCAPElimPass ( PassRegistry &  )

Referenced by initializeObjCARCOpts().

void llvm::initializeObjCARCContractPass ( PassRegistry &  )

Referenced by initializeObjCARCOpts().

void llvm::initializeObjCARCExpandPass ( PassRegistry &  )

Referenced by initializeObjCARCOpts().

void llvm::initializeObjCARCOptPass ( PassRegistry &  )

Referenced by initializeObjCARCOpts().

void llvm::initializeObjCARCOpts ( PassRegistry Registry)

initializeObjCARCOpts - Initialize all passes linked into the ObjCARCOpts library.

initializeObjCARCOptsPasses - Initialize all passes linked into the ObjCARCOpts library.

Definition at line 39 of file ObjCARC.cpp.

References initializeObjCARCAliasAnalysisPass(), initializeObjCARCAPElimPass(), initializeObjCARCContractPass(), initializeObjCARCExpandPass(), initializeObjCARCOptPass(), and initializePAEvalPass().

Referenced by LLVMInitializeObjCARCOpts().

void llvm::initializeOptimizePHIsPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializePAEvalPass ( PassRegistry &  )

Referenced by initializeObjCARCOpts().

void llvm::initializePartialInlinerPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializePartiallyInlineLibCallsPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializePeepholeOptimizerPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializePEIPass ( PassRegistry &  )
void llvm::initializePHIEliminationPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializePostDominatorTreePass ( PassRegistry &  )
void llvm::initializePostDomOnlyPrinterPass ( PassRegistry &  )
void llvm::initializePostDomOnlyViewerPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializePostDomPrinterPass ( PassRegistry &  )
void llvm::initializePostDomViewerPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializePostMachineSchedulerPass ( PassRegistry &  )
void llvm::initializePostRASchedulerPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializePPCBSelPass ( PassRegistry )
void llvm::initializePPCCTRLoopsPass ( PassRegistry )
void llvm::initializePPCCTRLoopsVerifyPass ( PassRegistry )
void llvm::initializePPCDAGToDAGISelPass ( PassRegistry Registry)

Definition at line 4240 of file PPCISelDAGToDAG.cpp.

References CALL_ONCE_INITIALIZATION, and initializePassOnce().

void llvm::initializePPCEarlyReturnPass ( PassRegistry )
void llvm::initializePPCTTIPass ( PassRegistry )
void llvm::initializePPCVSXCopyCleanupPass ( PassRegistry )
void llvm::initializePPCVSXCopyPass ( PassRegistry )
void llvm::initializePPCVSXFMAMutatePass ( PassRegistry &  )
void llvm::initializePrintBasicBlockPassPass ( PassRegistry &  )

Referenced by initializeCore().

void llvm::initializePrintFunctionPassWrapperPass ( PassRegistry &  )

Referenced by initializeCore().

void llvm::initializePrintModulePassWrapperPass ( PassRegistry &  )

Referenced by initializeCore().

void llvm::initializeProcessImplicitDefsPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializePromotePassPass ( PassRegistry &  )
void llvm::initializePruneEHPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeR600EmitClauseMarkersPass ( PassRegistry )
void llvm::initializeReassociatePass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeRegionInfoPassPass ( PassRegistry &  )
void llvm::initializeRegionOnlyPrinterPass ( PassRegistry &  )
void llvm::initializeRegionOnlyViewerPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeRegionPrinterPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeRegionViewerPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeRegisterCoalescerPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeRegToMemPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeRewriteSymbolsPass ( PassRegistry &  )
void llvm::initializeSampleProfileLoaderPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeSanitizerCoverageModulePass ( PassRegistry &  )
void llvm::initializeScalarEvolutionAliasAnalysisPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeScalarEvolutionPass ( PassRegistry &  )
void llvm::initializeScalarizerPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeScalarOpts ( PassRegistry Registry)

initializeScalarOpts - Initialize all passes linked into the ScalarOpts library.

initializeScalarOptsPasses - Initialize all passes linked into the ScalarOpts library.

Definition at line 29 of file Scalar.cpp.

References initializeADCEPass(), initializeAlignmentFromAssumptionsPass(), initializeCFGSimplifyPassPass(), initializeConstantHoistingPass(), initializeConstantPropagationPass(), initializeCorrelatedValuePropagationPass(), initializeDCEPass(), initializeDeadInstEliminationPass(), initializeDSEPass(), initializeEarlyCSEPass(), initializeFlattenCFGPassPass(), initializeGVNPass(), initializeIndVarSimplifyPass(), initializeIPSCCPPass(), initializeJumpThreadingPass(), initializeLICMPass(), initializeLoadCombinePass(), initializeLoopDeletionPass(), initializeLoopIdiomRecognizePass(), initializeLoopInstSimplifyPass(), initializeLoopRerollPass(), initializeLoopRotatePass(), initializeLoopStrengthReducePass(), initializeLoopUnrollPass(), initializeLoopUnswitchPass(), initializeLowerAtomicPass(), initializeLowerExpectIntrinsicPass(), initializeMemCpyOptPass(), initializeMergedLoadStoreMotionPass(), initializePartiallyInlineLibCallsPass(), initializeReassociatePass(), initializeRegToMemPass(), initializeSampleProfileLoaderPass(), initializeScalarizerPass(), initializeSCCPPass(), initializeSeparateConstOffsetFromGEPPass(), initializeSinkingPass(), initializeSROA_DTPass(), initializeSROA_SSAUpPass(), initializeSROAPass(), initializeStructurizeCFGPass(), and initializeTailCallElimPass().

Referenced by LLVMInitializeScalarOpts().

void llvm::initializeSCCPPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeScopedNoAliasAAPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeSeparateConstOffsetFromGEPPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeSIFixSGPRLiveRangesPass ( PassRegistry &  )
void llvm::initializeSIFoldOperandsPass ( PassRegistry &  )
void llvm::initializeSILoadStoreOptimizerPass ( PassRegistry &  )
void llvm::initializeSILowerI1CopiesPass ( PassRegistry &  )
void llvm::initializeSimpleInlinerPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeSingleLoopExtractorPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeSinkingPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeSIShrinkInstructionsPass ( PassRegistry )
void llvm::initializeSlotIndexesPass ( PassRegistry &  )
void llvm::initializeSLPVectorizerPass ( PassRegistry &  )

Referenced by initializeVectorization().

void llvm::initializeSpillPlacementPass ( PassRegistry &  )
void llvm::initializeSROA_DTPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeSROA_SSAUpPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeSROAPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeStackColoringPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeStackMapLivenessPass ( PassRegistry &  )
void llvm::initializeStackProtectorPass ( PassRegistry &  )
void llvm::initializeStackSlotColoringPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeStripDeadDebugInfoPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeStripDeadPrototypesPassPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeStripDebugDeclarePass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeStripNonDebugSymbolsPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeStripSymbolsPass ( PassRegistry &  )

Referenced by initializeIPO().

void llvm::initializeStructurizeCFGPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeTailCallElimPass ( PassRegistry &  )

Referenced by initializeScalarOpts().

void llvm::initializeTailDuplicatePassPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeTarget ( PassRegistry Registry)

initializeCodeGen - Initialize all passes linked into the CodeGen library.

Definition at line 36 of file Target.cpp.

References initializeDataLayoutPassPass(), and initializeTargetLibraryInfoPass().

Referenced by LLVMInitializeTarget().

void llvm::initializeTargetLibraryInfoPass ( PassRegistry &  )
void llvm::initializeTargetPassConfigPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeTargetTransformInfoAnalysisGroup ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeThreadSanitizerPass ( PassRegistry &  )
void llvm::initializeTransformUtils ( PassRegistry Registry)

initializeTransformUtils - Initialize all passes linked into the TransformUtils library.

initializeTransformUtils - Initialize all passes in the TransformUtils library.

Definition at line 23 of file Utils.cpp.

References initializeAddDiscriminatorsPass(), initializeBreakCriticalEdgesPass(), initializeInstNamerPass(), initializeInstSimplifierPass(), initializeLCSSAPass(), initializeLoopSimplifyPass(), initializeLowerInvokePass(), initializeLowerSwitchPass(), initializeMetaRenamerPass(), initializePromotePassPass(), and initializeUnifyFunctionExitNodesPass().

Referenced by LLVMInitializeTransformUtils().

void llvm::initializeTwoAddressInstructionPassPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeTypeBasedAliasAnalysisPass ( PassRegistry &  )

Referenced by initializeAnalysis().

void llvm::initializeUnifyFunctionExitNodesPass ( PassRegistry &  )
void llvm::initializeUnpackMachineBundlesPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeUnreachableBlockElimPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeUnreachableMachineBlockElimPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeVectorization ( PassRegistry Registry)

initializeVectorization - Initialize all passes linked into the Vectorize library.

initializeVectorizationPasses - Initialize all passes linked into the Vectorization library.

Definition at line 28 of file Vectorize.cpp.

References initializeBBVectorizePass(), initializeLoopVectorizePass(), and initializeSLPVectorizerPass().

Referenced by LLVMInitializeVectorization().

void llvm::initializeVerifierLegacyPassPass ( PassRegistry &  )

Referenced by initializeCore().

void llvm::initializeVirtRegMapPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeVirtRegRewriterPass ( PassRegistry &  )

Referenced by initializeCodeGen().

void llvm::initializeX86TTIPass ( PassRegistry )
void llvm::initializeXCoreLowerThreadLocalPass ( PassRegistry &  p)
void llvm::initializeXCoreTTIPass ( PassRegistry )
bool llvm::InlineFunction ( CallInst C,
InlineFunctionInfo IFI,
bool  InsertLifetime = true 
)

InlineFunction - This function inlines the called function into the basic block of the caller. This returns false if it is not possible to inline this call. The program is still in a well defined state if this occurs though.

Note that this only does one level of inlining. For example, if the instruction 'call B' is inlined, and 'B' calls 'C', then the call to 'C' now exists in the instruction stream. Similarly this will inline a recursive function by one level.

Definition at line 55 of file InlineFunction.cpp.

Referenced by InlineCallIfPossible(), and InlineFunction().

bool llvm::InlineFunction ( InvokeInst II,
InlineFunctionInfo IFI,
bool  InsertLifetime = true 
)

Definition at line 59 of file InlineFunction.cpp.

References InlineFunction().

bool llvm::InlineFunction ( CallSite  CS,
InlineFunctionInfo IFI,
bool  InsertLifetime = true 
)

InlineFunction - This function inlines the called function into the basic block of the caller. This returns false if it is not possible to inline this call. The program is still in a well defined state if this occurs though.

Note that this only does one level of inlining. For example, if the instruction 'call B' is inlined, and 'B' calls 'C', then the call to 'C' now exists in the instruction stream. Similarly this will inline a recursive function by one level.

Definition at line 899 of file InlineFunction.cpp.

References llvm::InlineFunctionInfo::AA, llvm::InlineFunctionInfo::ACT, AddAliasScopeMetadata(), AddAlignmentAssumptions(), llvm::PHINode::addIncoming(), llvm::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_begin(), llvm::Function::arg_begin(), llvm::Function::arg_end(), llvm::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_size(), llvm::Function::arg_size(), assert(), llvm::Function::back(), llvm::BasicBlock::begin(), llvm::Function::begin(), llvm::InlineFunctionInfo::CG, llvm::AssumptionCache::clear(), CloneAliasScopeMetadata(), CloneAndPruneFunctionInto(), llvm::ClonedCodeInfo::ContainsCalls, llvm::ClonedCodeInfo::ContainsDynamicAllocas, llvm::PHINode::Create(), llvm::BranchInst::Create(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateBitCast(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateRet(), llvm::InlineFunctionInfo::DL, llvm::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::doesNotThrow(), dyn_cast(), llvm::SmallVectorBase::empty(), llvm::Function::end(), llvm::iplist< NodeTy, Traits >::erase(), llvm::Instruction::eraseFromParent(), llvm::BasicBlock::eraseFromParent(), fixupLineNumbers(), llvm::ConstantInt::get(), llvm::UndefValue::get(), llvm::AllocaInst::getAllocatedType(), llvm::AllocaInst::getArraySize(), llvm::AssumptionCacheTracker::getAssumptionCache(), llvm::Function::getBasicBlockList(), llvm::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getCalledFunction(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::Intrinsic::getDeclaration(), llvm::Function::getEntryBlock(), llvm::Function::getFunctionType(), llvm::Function::getGC(), llvm::BasicBlock::getInstList(), llvm::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getInstruction(), llvm::Type::getInt64Ty(), llvm::BasicBlock::getLandingPadInst(), llvm::Value::getName(), llvm::InvokeInst::getNormalDest(), llvm::Instruction::getOpcode(), llvm::Function::getParamAlignment(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::LandingPadInst::getPersonalityFn(), llvm::Function::getReturnType(), llvm::ReturnInst::getReturnValue(), llvm::CallInst::getTailCallKind(), llvm::BasicBlock::getTerminatingMustTailCall(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::DataLayout::getTypeAllocSize(), llvm::InvokeInst::getUnwindDest(), HandleByValArgument(), HandleByValArgumentInit(), HandleInlinedInvoke(), llvm::Function::hasGC(), hasLifetimeMarkers(), I, llvm::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isByValArgument(), llvm::GlobalValue::isDeclaration(), llvm::CallInst::isMustTailCall(), llvm::FunctionType::isVarArg(), llvm::TargetOpcode::PHI, llvm::iplist< NodeTy, Traits >::pop_back(), pred_begin(), pred_end(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::Value::replaceAllUsesWith(), llvm::InlineFunctionInfo::reset(), llvm::Instruction::setDebugLoc(), llvm::CallInst::setDoesNotThrow(), llvm::Function::setGC(), llvm::User::setOperand(), llvm::CallInst::setTailCallKind(), SimplifyInstruction(), llvm::SmallVectorTemplateCommon< T >::size(), llvm::iplist< NodeTy, Traits >::splice(), llvm::BasicBlock::splitBasicBlock(), llvm::Intrinsic::stackrestore, llvm::Intrinsic::stacksave, llvm::InlineFunctionInfo::StaticAllocas, std::swap(), llvm::CallInst::TCK_None, UpdateCallGraphAfterInlining(), and llvm::Value::use_empty().

BasicBlock * llvm::InsertPreheaderForLoop ( Loop L,
Pass PP 
)
inst_iterator llvm::inst_begin ( Function *  F)
inline
const_inst_iterator llvm::inst_begin ( const Function *  F)
inline

Definition at line 130 of file InstIterator.h.

inst_iterator llvm::inst_begin ( Function &  F)
inline

Definition at line 136 of file InstIterator.h.

const_inst_iterator llvm::inst_begin ( const Function &  F)
inline

Definition at line 138 of file InstIterator.h.

inst_iterator llvm::inst_end ( Function *  F)
inline
const_inst_iterator llvm::inst_end ( const Function *  F)
inline

Definition at line 133 of file InstIterator.h.

inst_iterator llvm::inst_end ( Function &  F)
inline

Definition at line 137 of file InstIterator.h.

const_inst_iterator llvm::inst_end ( const Function &  F)
inline

Definition at line 141 of file InstIterator.h.

void llvm::install_fatal_error_handler ( fatal_error_handler_t  handler,
void *  user_data = nullptr 
)

install_fatal_error_handler - Installs a new error handler to be used whenever a serious (non-recoverable) error is encountered by LLVM.

If no error handler is installed the default is to print the error message to stderr, and call exit(1). If an error handler is installed then it is the handler's responsibility to log the message, it will no longer be printed to stderr. If the error handler returns, then exit(1) will be called.

It is dangerous to naively use an error handler which throws an exception. Even though some applications desire to gracefully recover from arbitrary faults, blindly throwing exceptions through unfamiliar code isn't a way to achieve this.

Parameters
user_data- An argument which will be passed to the install error handler.

Definition at line 47 of file ErrorHandling.cpp.

References assert(), ErrorHandler, ErrorHandlerMutex, ErrorHandlerUserData, and Lock.

Referenced by LLVMInstallFatalErrorHandler(), and llvm::ScopedFatalErrorHandler::ScopedFatalErrorHandler().

const std::error_category & llvm::instrprof_category ( )

Definition at line 61 of file InstrProf.cpp.

References ErrorCategory.

Referenced by make_error_code().

function_interval_iterator llvm::intervals_begin ( Function *  F,
bool  DeleteInts = true 
)
inline
interval_part_interval_iterator llvm::intervals_begin ( IntervalPartition &  IP,
bool  DeleteIntervals = true 
)
inline

Definition at line 249 of file IntervalIterator.h.

function_interval_iterator llvm::intervals_end ( Function *  )
inline
interval_part_interval_iterator llvm::intervals_end ( IntervalPartition &  IP)
inline

Definition at line 253 of file IntervalIterator.h.

template<class T >
iterator_range<idf_iterator<T> > llvm::inverse_depth_first ( const T G)

Definition at line 263 of file DepthFirstIterator.h.

References idf_begin(), and idf_end().

template<class T , class SetTy >
iterator_range<idf_ext_iterator<T, SetTy> > llvm::inverse_depth_first_ext ( const T G,
SetTy S 
)

Definition at line 287 of file DepthFirstIterator.h.

References idf_ext_begin(), and idf_ext_end().

template<class T >
ipo_iterator<T> llvm::ipo_begin ( T  G,
bool  Reverse = false 
)
template<class T >
ipo_iterator<T> llvm::ipo_end ( T  G)
template<class T , class SetType >
ipo_ext_iterator<T, SetType> llvm::ipo_ext_begin ( T  G,
SetType &  S 
)
template<class T , class SetType >
ipo_ext_iterator<T, SetType> llvm::ipo_ext_end ( T  G,
SetType &  S 
)
template<class X , class Y >
LLVM_ATTRIBUTE_UNUSED_RESULT bool llvm::isa ( const Y Val)
inline

Definition at line 132 of file Casting.h.

References X, and Y.

Referenced by llvm::DwarfUnit::applySubprogramAttributes(), and llvm::MCDwarfLoc::setIsa().

int llvm::isAArch64FrameOffsetLegal ( const MachineInstr MI,
int &  Offset,
bool OutUseUnscaledOp = nullptr,
unsigned OutUnscaledOp = nullptr,
int *  EmittableOffset = nullptr 
)

Check if the Offset is a valid frame offset for MI. The returned value reports the validity of the frame offset for MI. It uses the values defined by AArch64FrameOffsetStatus for that. If result == AArch64FrameOffsetCannotUpdate, MI cannot be updated to use an offset.eq If result & AArch64FrameOffsetIsLegal, Offset can completely be rewriten in MI. If result & AArch64FrameOffsetCanUpdate, Offset contains the amount that is off the limit of the legal offset. If set, OutUseUnscaledOp will contain the whether MI should be turned into an unscaled operator, which opcode is in OutUnscaledOp. If set, EmittableOffset contains the amount that can be set in MI (possibly with OutUnscaledOp if OutUseUnscaledOp is true) and that is a legal offset.

Definition at line 2108 of file AArch64InstrInfo.cpp.

References AArch64FrameOffsetCannotUpdate, AArch64FrameOffsetCanUpdate, AArch64FrameOffsetIsLegal, llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), and llvm_unreachable.

Referenced by llvm::AArch64RegisterInfo::isFrameOffsetLegal(), and rewriteAArch64FrameIndex().

bool llvm::isAllocaPromotable ( const AllocaInst AI)

Return true if this alloca is legal for promotion.

This is true if there are only loads, stores, and lifetime markers (transitively) using this alloca. This also enforces that there is only ever one layer of bitcasts or GEPs between the alloca and the lifetime markers.

Definition at line 60 of file PromoteMemoryToRegister.cpp.

References llvm::PointerType::getAddressSpace(), llvm::Type::getInt8PtrTy(), llvm::AllocaInst::getType(), LI, llvm::Intrinsic::lifetime_end, llvm::Intrinsic::lifetime_start, onlyUsedByLifetimeMarkers(), SI, and llvm::Value::users().

bool llvm::isAllocationFn ( const Value V,
const TargetLibraryInfo TLI,
bool  LookThroughBitCast = false 
)

Tests if a value is a call or invoke to a library function that allocates or reallocates memory (either malloc, calloc, realloc, or strdup like).

Definition at line 151 of file MemoryBuiltins.cpp.

References AnyAlloc, and getAllocationData().

Referenced by CleanupPointerRootUsers(), isNoAliasFn(), IsSafeComputationToRemove(), and llvm::InstCombiner::visitGetElementPtrInst().

bool llvm::isAllocLikeFn ( const Value V,
const TargetLibraryInfo TLI,
bool  LookThroughBitCast = false 
)

Tests if a value is a call or invoke to a library function that allocates memory (either malloc, calloc, or strdup like).

Definition at line 182 of file MemoryBuiltins.cpp.

References AllocLike, and getAllocationData().

Referenced by isInstructionTriviallyDead().

static bool llvm::isARMArea1Register ( unsigned  Reg,
bool  isIOS 
)
inlinestatic

isARMArea1Register - Returns true if the register is a low register (r0-r7) or a stack/pc register that we should push/pop.

Definition at line 38 of file ARMBaseRegisterInfo.h.

References R2, R4, and R6.

Referenced by llvm::ARMFrameLowering::restoreCalleeSavedRegisters(), and llvm::ARMFrameLowering::spillCalleeSavedRegisters().

static bool llvm::isARMArea2Register ( unsigned  Reg,
bool  isIOS 
)
inlinestatic
static bool llvm::isARMArea3Register ( unsigned  Reg,
bool  isIOS 
)
inlinestatic
static bool llvm::isARMLowRegister ( unsigned  Reg)
inlinestatic
const CallInst * llvm::isArrayMalloc ( const Value I,
const DataLayout DL,
const TargetLibraryInfo TLI 
)

isArrayMalloc - Returns the corresponding CallInst if the instruction is a call to malloc whose array size can be determined and the array size is not constant 1. Otherwise, return NULL.

Definition at line 238 of file MemoryBuiltins.cpp.

References computeArraySize(), and extractMallocCall().

bool llvm::isAtLeastAcquire ( AtomicOrdering  Ord)
inline
bool llvm::isAtLeastRelease ( AtomicOrdering  Ord)
inline
bool llvm::isBarrierIntrinsic ( llvm::Intrinsic::ID  id)
bool llvm::isBasePlusOffsetMemoryAccess ( unsigned  Opcode,
unsigned AddrIdx,
bool IsStore = nullptr 
)
static bool llvm::isBinOpWithFlags ( unsigned  Opcode)
static
bool llvm::isBitcode ( const unsigned char *  BufPtr,
const unsigned char *  BufEnd 
)
inline

isBitcode - Return true if the given bytes are the magic bytes for LLVM IR bitcode, either with or without a wrapper.

Definition at line 94 of file ReaderWriter.h.

References isBitcodeWrapper(), and isRawBitcode().

Referenced by getLazyIRModule(), and parseIR().

bool llvm::isBitcodeWrapper ( const unsigned char *  BufPtr,
const unsigned char *  BufEnd 
)
inline

isBitcodeWrapper - Return true if the given bytes are the magic bytes for an LLVM IR bitcode wrapper.

Definition at line 66 of file ReaderWriter.h.

Referenced by isBitcode().

Value * llvm::isBytewiseValue ( Value V)

isBytewiseValue - If the specified value can be set by repeating the same byte in memory, return the i8 value that it is represented with. This is true for all i8 values obviously, but is also true for i32 0, i32 -1, i16 0xF0F0, double 0.0 etc. If the value can't be handled with a repeated byte store (e.g. i16 0x1234), return null.

If the specified value can be set by repeating the same byte in memory, return the i8 value that it is represented with. This is true for all i8 values obviously, but is also true for i32 0, i32 -1, i16 0xF0F0, double 0.0 etc. If the value can't be handled with a repeated byte store (e.g. i16 0x1234), return null.

Definition at line 2052 of file ValueTracking.cpp.

References llvm::CallingConv::C, llvm::ConstantInt::get(), llvm::ConstantExpr::getBitCast(), llvm::APInt::getBitWidth(), llvm::Value::getContext(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::Type::getInt8Ty(), llvm::Constant::getNullValue(), llvm::Value::getType(), I, llvm::Type::isIntegerTy(), isPowerOf2_32(), llvm::APInt::lshr(), and llvm::APInt::trunc().

static bool llvm::isCalleeSavedRegister ( unsigned  Reg,
const MCPhysReg *  CSRegs 
)
inlinestatic

Definition at line 75 of file ARMBaseRegisterInfo.h.

Referenced by isCSRestore(), and tryFoldSPUpdateIntoPushPop().

bool llvm::isCallocLikeFn ( const Value V,
const TargetLibraryInfo TLI,
bool  LookThroughBitCast = false 
)

Tests if a value is a call or invoke to a library function that allocates zero-filled memory (such as calloc).

Definition at line 175 of file MemoryBuiltins.cpp.

References CallocLike, and getAllocationData().

Referenced by extractCallocCall(), and llvm::MemoryDependenceAnalysis::getPointerDependencyFrom().

static bool llvm::isCondBranchOpcode ( int  Opc)
inlinestatic
static bool llvm::isCondBranchOpcode ( int  Opc)
inlinestatic

Definition at line 411 of file ARMBaseInstrInfo.h.

template<typename InstrType >
bool llvm::IsCPSRDead ( InstrType *  Instr)

Referenced by isV8EligibleForIT().

template<>
bool llvm::IsCPSRDead< MCInst > ( MCInst Instr)
inline

Definition at line 8568 of file ARMAsmParser.cpp.

bool llvm::isCriticalEdge ( const TerminatorInst TI,
unsigned  SuccNum,
bool  AllowIdenticalEdges = false 
)

Return true if the specified edge is a critical edge. Critical edges are edges from a block with multiple successors to a block with multiple predecessors.

isCriticalEdge - Return true if the specified edge is a critical edge. Critical edges are edges from a block with multiple successors to a block with multiple predecessors.

Definition at line 87 of file CFG.cpp.

References assert(), llvm::TerminatorInst::getNumSuccessors(), llvm::TerminatorInst::getSuccessor(), I, pred_begin(), and pred_end().

Referenced by DemoteRegToStack(), and SplitCriticalEdge().

bool llvm::isCurrentDebugType ( const char *  Type)

isCurrentDebugType - Return true if the specified string is the debug type specified on the command line, or if none was specified on the command line with the -debug-only=X option.

Definition at line 91 of file Debug.cpp.

References CurrentDebugType.

const CallInst * llvm::isFreeCall ( const Value I,
const TargetLibraryInfo TLI 
)
static CallInst* llvm::isFreeCall ( Value *  I,
const TargetLibraryInfo *  TLI 
)
inlinestatic

Definition at line 135 of file MemoryBuiltins.h.

References isFreeCall().

bool llvm::isGCRelocate ( const Instruction inst)
bool llvm::isGCRelocate ( const ImmutableCallSite CS)
bool llvm::isGCResult ( const Instruction inst)
bool llvm::isGCResult ( const ImmutableCallSite CS)
static bool llvm::isGlobalRelativeToPICBase ( unsigned char  TargetFlag)
inlinestatic

isGlobalRelativeToPICBase - Return true if the specified global value reference is relative to a 32-bit PIC base (X86ISD::GlobalBaseReg). If this is true, the addressing mode has the PIC base register added in (e.g. EBX).

Definition at line 102 of file X86InstrInfo.h.

References llvm::X86II::MO_DARWIN_HIDDEN_NONLAZY_PIC_BASE, llvm::X86II::MO_DARWIN_NONLAZY_PIC_BASE, llvm::X86II::MO_GOT, llvm::X86II::MO_GOTOFF, llvm::X86II::MO_PIC_BASE_OFFSET, and llvm::X86II::MO_TLVP.

Referenced by llvm::X86TargetLowering::isLegalAddressingMode().

static bool llvm::isGlobalStubReference ( unsigned char  TargetFlag)
inlinestatic

isGlobalStubReference - Return true if the specified TargetFlag operand is a reference to a stub for a global, not the global itself.

Definition at line 85 of file X86InstrInfo.h.

References llvm::X86II::MO_DARWIN_HIDDEN_NONLAZY_PIC_BASE, llvm::X86II::MO_DARWIN_NONLAZY, llvm::X86II::MO_DARWIN_NONLAZY_PIC_BASE, llvm::X86II::MO_DLLIMPORT, llvm::X86II::MO_GOT, and llvm::X86II::MO_GOTPCREL.

Referenced by llvm::X86TargetLowering::isLegalAddressingMode(), and llvm::X86TargetLowering::LowerAsmOperandForConstraint().

bool llvm::isIdentifiedFunctionLocal ( const Value V)

isIdentifiedFunctionLocal - Return true if V is umabigously identified at the function-level. Different IdentifiedFunctionLocals can't alias. Further, an IdentifiedFunctionLocal can not alias with any function arguments other than itself, which is not necessarily true for IdentifiedObjects.

Definition at line 556 of file AliasAnalysis.cpp.

References isNoAliasArgument(), and isNoAliasCall().

Referenced by AddAliasScopeMetadata().

bool llvm::isIdentifiedObject ( const Value V)

isIdentifiedObject - Return true if this pointer refers to a distinct and identifiable object. This returns true for: Global Variables and Functions (but not Global Aliases) Allocas ByVal and NoAlias Arguments NoAlias returns (e.g. calls to malloc)

isIdentifiedObject - Return true if this pointer refers to a distinct and identifiable object. This returns true for: Global Variables and Functions (but not Global Aliases) Allocas and Mallocs ByVal and NoAlias Arguments NoAlias returns

Definition at line 539 of file AliasAnalysis.cpp.

References llvm::ARM_PROC::A, and isNoAliasCall().

Referenced by llvm::AliasAnalysis::callCapturesBefore(), getUnderlyingObjectsForInstr(), isObjectSmallerThan(), and isUnsafeMemoryObject().

bool llvm::isImage ( const llvm::Value val)

Definition at line 224 of file NVPTXUtilities.cpp.

References isImageReadOnly(), isImageReadWrite(), and isImageWriteOnly().

bool llvm::isImageOrSamplerVal ( const Value arg,
const Module context 
)
bool llvm::isImageReadOnly ( const llvm::Value val)
bool llvm::isImageReadWrite ( const llvm::Value val)
bool llvm::isImageWriteOnly ( const llvm::Value val)
bool llvm::isImmSExti16i8Value ( uint64_t  Value)
inline

Definition at line 15 of file X86AsmParserCommon.h.

Referenced by convert16i16to16ri8(), and llvm::X86Operand::isImmSExti16i8().

bool llvm::isImmSExti32i8Value ( uint64_t  Value)
inline

Definition at line 21 of file X86AsmParserCommon.h.

Referenced by convert32i32to32ri8(), and llvm::X86Operand::isImmSExti32i8().

bool llvm::isImmSExti64i32Value ( uint64_t  Value)
inline

Definition at line 32 of file X86AsmParserCommon.h.

Referenced by llvm::X86Operand::isImmSExti64i32().

bool llvm::isImmSExti64i8Value ( uint64_t  Value)
inline

Definition at line 27 of file X86AsmParserCommon.h.

Referenced by convert64i32to64ri8(), and llvm::X86Operand::isImmSExti64i8().

static bool llvm::isIndirectBranchOpcode ( int  Opc)
inlinestatic
static bool llvm::isIndirectBranchOpcode ( int  Opc)
inlinestatic

Definition at line 422 of file ARMBaseInstrInfo.h.

int llvm::IsInf ( float  f)

Platform-independent wrappers for the C99 isinf() function.

Definition at line 46 of file IsInf.cpp.

int llvm::IsInf ( double  d)

Definition at line 47 of file IsInf.cpp.

bool llvm::isInstructionTriviallyDead ( Instruction I,
const TargetLibraryInfo TLI = nullptr 
)
template<unsigned N>
bool llvm::isInt ( int64_t  x)
inline

isInt - Checks if an integer fits into the given bit width.

Definition at line 271 of file MathExtras.h.

References N.

template<>
bool llvm::isInt< 16 > ( int64_t  x)
inline
template<>
bool llvm::isInt< 32 > ( int64_t  x)
inline
template<>
bool llvm::isInt< 8 > ( int64_t  x)
inline
bool llvm::isInTailCallPosition ( ImmutableCallSite  CS,
const TargetMachine TM 
)
bool llvm::isIntN ( unsigned  N,
int64_t  x 
)
inline

isIntN - Checks if an signed integer fits into the given (dynamic) bit width.

Definition at line 329 of file MathExtras.h.

Referenced by adjustFixupValue(), llvm::MCStreamer::EmitIntValue(), isExtendedBUILD_VECTOR(), and llvm::TargetLowering::SimplifyDemandedBits().

static bool llvm::isJumpTableBranchOpcode ( int  Opc)
inlinestatic

Definition at line 416 of file ARMBaseInstrInfo.h.

Referenced by llvm::ARMBaseInstrInfo::AnalyzeBranch().

bool llvm::isKernelFunction ( const llvm::Function F)
bool llvm::isKnownNonNull ( const Value V,
const TargetLibraryInfo TLI = nullptr 
)

Return true if we know that the specified value is never null.

isKnownNonNull - Return true if this pointer couldn't possibly be null by its definition. This returns true for allocas, non-extern-weak globals and byval arguments.

Definition at line 2656 of file ValueTracking.cpp.

References llvm::ARM_PROC::A, isOperatorNewLikeFn(), LI, and llvm::LLVMContext::MD_nonnull.

Referenced by computePointerICmp(), isKnownNonZero(), and llvm::InstCombiner::visitCallInst().

bool llvm::isKnownNonZero ( Value V,
const DataLayout TD = nullptr,
unsigned  Depth = 0,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr 
)

isKnownNonZero - Return true if the given value is known to be non-zero when defined. For vectors return true if every element is known to be non-zero when defined. Supports values with integer or pointer type and vectors of integers.

Definition at line 136 of file ValueTracking.cpp.

References isKnownNonZero(), and safeCxtI().

Referenced by computeKnownBitsMul(), isGEPKnownNonNull(), isKnownNonZero(), and SimplifyICmpInst().

bool llvm::isKnownToBeAPowerOfTwo ( Value V,
bool  OrZero = false,
unsigned  Depth = 0,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr 
)

isKnownToBeAPowerOfTwo - Return true if the given value is known to have exactly one bit set when defined. For vectors return true if every element is known to be a power of two when defined. Supports values with integer or pointer type and vectors of integers. If 'OrZero' is set then returns true if the given value is either a power of two or zero.

Definition at line 126 of file ValueTracking.cpp.

References isKnownToBeAPowerOfTwo(), and safeCxtI().

Referenced by computeKnownBitsFromAssume(), llvm::InstCombiner::FoldOrOfICmps(), isKnownNonZero(), isKnownToBeAPowerOfTwo(), SimplifyAndInst(), simplifyValueKnownNonZero(), llvm::InstCombiner::visitICmpInst(), llvm::InstCombiner::visitSDiv(), and llvm::InstCombiner::visitURem().

static bool llvm::isLeaMem ( const MachineInstr *  MI,
unsigned  Op 
)
inlinestatic
bool llvm::isMallocLikeFn ( const Value V,
const TargetLibraryInfo TLI,
bool  LookThroughBitCast = false 
)

Tests if a value is a call or invoke to a library function that allocates uninitialized memory (such as malloc).

Definition at line 168 of file MemoryBuiltins.cpp.

References getAllocationData(), and MallocLike.

Referenced by extractMallocCall(), getMallocArraySize(), getMallocType(), and llvm::MemoryDependenceAnalysis::getPointerDependencyFrom().

bool llvm::isManaged ( const llvm::Value val)
bool llvm::isMask_32 ( uint32_t  Value)
inline

isMask_32 - This function returns true if the argument is a sequence of ones starting at the least significant bit with the remainder zero (32 bit version). Ex. isMask_32(0x0000FFFFU) == true.

Definition at line 336 of file MathExtras.h.

Referenced by isImmMskBitp(), and isShiftedMask_32().

bool llvm::isMask_64 ( uint64_t  Value)
inline

isMask_64 - This function returns true if the argument is a sequence of ones starting at the least significant bit with the remainder zero (64 bit version).

Definition at line 343 of file MathExtras.h.

Referenced by llvm::AArch64TargetLowering::isDesirableToCommuteWithShift(), isSeveralBitsExtractOpFromShr(), isShiftedMask_64(), and PerformAndCombine().

static bool llvm::isMem ( const MachineInstr *  MI,
unsigned  Op 
)
inlinestatic
bool llvm::isMemorySpaceTransferIntrinsic ( Intrinsic::ID  id)
int llvm::IsNAN ( float  f)

Platform-independent wrappers for the C99 isnan() function.

Definition at line 31 of file IsNAN.cpp.

int llvm::IsNAN ( double  d)

Definition at line 32 of file IsNAN.cpp.

bool llvm::isNoAliasArgument ( const Value V)

isNoAliasArgument - Return true if this is an argument with the noalias attribute.

Definition at line 525 of file AliasAnalysis.cpp.

References llvm::ARM_PROC::A.

Referenced by isIdentifiedFunctionLocal().

bool llvm::isNoAliasCall ( const Value V)
bool llvm::isNoAliasFn ( const Value V,
const TargetLibraryInfo TLI,
bool  LookThroughBitCast = false 
)

Tests if a value is a call or invoke to a function that returns a NoAlias pointer (including malloc/calloc/realloc/strdup-like functions).

Definition at line 158 of file MemoryBuiltins.cpp.

References hasNoAliasAttr(), and isAllocationFn().

Referenced by llvm::MemoryDependenceAnalysis::getPointerDependencyFrom().

bool llvm::isOperatorNewLikeFn ( const Value V,
const TargetLibraryInfo TLI,
bool  LookThroughBitCast = false 
)

Tests if a value is a call or invoke to a library function that allocates memory and never returns null (such as operator new).

Definition at line 196 of file MemoryBuiltins.cpp.

References getAllocationData(), and OpNewLike.

Referenced by isKnownNonNull().

bool llvm::isParamLoad ( const MachineInstr MI)
static bool llvm::isPopOpcode ( int  Opc)
inlinestatic

Definition at line 426 of file ARMBaseInstrInfo.h.

Referenced by isCSRestore(), and tryFoldSPUpdateIntoPushPop().

bool llvm::isPositiveHalfWord ( SDNode N)
bool llvm::isPotentiallyReachable ( const Instruction From,
const Instruction To,
const DominatorTree DT = nullptr,
const LoopInfo LI = nullptr 
)

Determine whether instruction 'To' is reachable from 'From', returning true if uncertain.

Determine whether there is a path from From to To within a single function. Returns false only if we can prove that once 'From' has been executed then 'To' can not be executed. Conservatively returns true.

This function is linear with respect to the number of blocks in the CFG, walking down successors from From to reach To, with a fixed threshold. Using DT or LI allows us to answer more quickly. LI reduces the cost of an entire loop of any number of blocsk to be the same as the cost of a single block. DT reduces the cost by allowing the search to terminate when we find a block that dominates the block containing 'To'. DT is most useful on branchy code but not loops, and LI is most useful on code with loops but does not help on branchy code outside loops.

Definition at line 186 of file CFG.cpp.

References assert(), llvm::BasicBlock::end(), llvm::Function::getEntryBlock(), llvm::LoopInfo::getLoopFor(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), I, isPotentiallyReachableInner(), succ_begin(), and succ_end().

bool llvm::isPotentiallyReachable ( const BasicBlock From,
const BasicBlock To,
const DominatorTree DT = nullptr,
const LoopInfo LI = nullptr 
)

Determine whether block 'To' is reachable from 'From', returning true if uncertain.

Determine whether there is a path from From to To within a single function. Returns false only if we can prove that once 'From' has been reached then 'To' can not be executed. Conservatively returns true.

Definition at line 174 of file CFG.cpp.

References assert(), llvm::BasicBlock::getParent(), isPotentiallyReachableInner(), and llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().

bool llvm::isPowerOf2_32 ( uint32_t  Value)
inline
bool llvm::isPowerOf2_64 ( uint64_t  Value)
inline
static bool llvm::isPushOpcode ( int  Opc)
inlinestatic

Definition at line 432 of file ARMBaseInstrInfo.h.

Referenced by tryFoldSPUpdateIntoPushPop().

bool llvm::isRawBitcode ( const unsigned char *  BufPtr,
const unsigned char *  BufEnd 
)
inline

isRawBitcode - Return true if the given bytes are the magic bytes for raw LLVM IR bitcode (without a wrapper).

Definition at line 80 of file ReaderWriter.h.

Referenced by isBitcode().

static bool llvm::isReadOnlyData ( const SectionRef Section)
static
bool llvm::isReallocLikeFn ( const Value V,
const TargetLibraryInfo TLI,
bool  LookThroughBitCast = false 
)

Tests if a value is a call or invoke to a library function that reallocates memory (such as realloc).

Definition at line 189 of file MemoryBuiltins.cpp.

References getAllocationData(), and ReallocLike.

static bool llvm::isRequiredForExecution ( const SectionRef Section)
static
bool llvm::isSafeToDestroyConstant ( const Constant C)

It is safe to destroy a constant iff it is only used by constants itself. Note that constants cannot be cyclic, so this test is pretty easy to implement recursively.

Definition at line 34 of file GlobalStatus.cpp.

References llvm::Value::users().

Referenced by analyzeGlobalAux(), CleanupConstantGlobalUsers(), CleanupPointerRootUsers(), and isSafeSROAElementUse().

bool llvm::isSafeToExpand ( const SCEV S,
ScalarEvolution SE 
)

Return true if the given expression is safe to expand in the sense that all materialized values are safe to speculate.

Definition at line 1855 of file ScalarEvolutionExpander.cpp.

References visitAll().

bool llvm::isSafeToLoadUnconditionally ( Value V,
Instruction ScanFrom,
unsigned  Align,
const DataLayout DL = nullptr 
)

Check if executing a load of this pointer value cannot trap.

isSafeToLoadUnconditionally - Return true if we know that executing a load from this value cannot trap. If it is not obviously safe to load from the specified pointer, we do a quick local scan of the basic block containing ScanFrom, to determine if the address is already accessed.

If it is not obviously safe to load from the specified pointer, we do a quick local scan of the basic block containing ScanFrom, to determine if the address is already accessed.

This uses the pointee type to determine how many bytes need to be safe to load from the pointer.

Definition at line 64 of file Loads.cpp.

References AreEquivalentAddressValues(), llvm::BasicBlock::begin(), DL, llvm::SequentialType::getElementType(), llvm::Instruction::getParent(), GetPointerBaseWithConstantOffset(), llvm::DataLayout::getPrefTypeAlignment(), llvm::Value::getType(), llvm::DataLayout::getTypeStoreSize(), llvm::Type::isSized(), LI, SI, and llvm::Value::stripPointerCasts().

Referenced by isSafePHIToSpeculate(), isSafeSelectToSpeculate(), and llvm::InstCombiner::visitLoadInst().

bool llvm::isSafeToSpeculativelyExecute ( const Value V,
const DataLayout TD = nullptr 
)

isSafeToSpeculativelyExecute - Return true if the instruction does not have any effects besides calculating the result and does not have undefined behavior.

This method never returns true for an instruction that returns true for mayHaveSideEffects; however, this method also does some other checks in addition. It checks for undefined behavior, like dividing by zero or loading from an invalid pointer (but not for undefined results, like a shift with a shift amount larger than the width of the result). It checks for malloc and alloca because speculatively executing them might cause a memory leak. It also returns false for instructions related to control flow, specifically terminators and PHI nodes.

This method only looks at the instruction itself and its operands, so if this method returns true, it is safe to move the instruction as long as the correct dominance relationships for the operands and users hold. However, this method can return true for instructions that read memory; for such instructions, moving them may change the resulting value.

Definition at line 2545 of file ValueTracking.cpp.

References llvm::Intrinsic::bswap, llvm::CallingConv::C, Call, llvm::Intrinsic::ctlz, llvm::Intrinsic::ctpop, llvm::Intrinsic::cttz, llvm::Intrinsic::dbg_declare, llvm::Intrinsic::dbg_value, dyn_cast(), llvm::Intrinsic::fabs, llvm::Intrinsic::fma, llvm::Intrinsic::fmuladd, llvm::User::getNumOperands(), llvm::Operator::getOpcode(), llvm::User::getOperand(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::LoadInst::getPointerOperand(), llvm::Function::hasFnAttribute(), llvm::Value::isDereferenceablePointer(), llvm::APInt::isMinSignedValue(), llvm::LoadInst::isUnordered(), LI, llvm::SPII::Load, llvm::PatternMatch::m_APInt(), llvm::PatternMatch::match(), llvm::Intrinsic::maxnum, llvm::Intrinsic::minnum, llvm::Intrinsic::objectsize, llvm::TargetOpcode::PHI, llvm::MipsISD::Ret, llvm::Intrinsic::sadd_with_overflow, llvm::Attribute::SanitizeThread, llvm::Intrinsic::smul_with_overflow, llvm::Intrinsic::sqrt, llvm::Intrinsic::ssub_with_overflow, llvm::SPII::Store, llvm::Intrinsic::uadd_with_overflow, llvm::Intrinsic::umul_with_overflow, llvm::Intrinsic::usub_with_overflow, X, and Y.

Referenced by llvm::IVUsers::AddUsersImpl(), CanPHITrans(), completeEphemeralValues(), ComputeSpeculationCost(), DominatesMergePoint(), FoldBranchToCommonDest(), HoistThenElseCodeToIf(), InstructionWillNotHaveChain(), isEphemeralValueOf(), isInTailCallPosition(), isValidAssumeForContext(), llvm::Loop::makeLoopInvariant(), shouldSpeculateInstrs(), and SpeculativelyExecuteBB().

bool llvm::isSampler ( const llvm::Value val)
static bool llvm::isScale ( const MachineOperand &  MO)
inlinestatic

Definition at line 116 of file X86InstrInfo.h.

References llvm::MachineOperand::getImm(), and llvm::MachineOperand::isImm().

Referenced by isLeaMem().

template<unsigned N, unsigned S>
bool llvm::isShiftedInt ( int64_t  x)
inline

isShiftedInt<N,S> - Checks if a signed integer is an N bit number shifted left by S.

Definition at line 291 of file MathExtras.h.

bool llvm::isShiftedMask_32 ( uint32_t  Value)
inline

isShiftedMask_32 - This function returns true if the argument contains a sequence of ones with the remainder zero (32 bit version.) Ex. isShiftedMask_32(0x0000FF00U) == true.

Definition at line 350 of file MathExtras.h.

References isMask_32().

bool llvm::isShiftedMask_64 ( uint64_t  Value)
inline

isShiftedMask_64 - This function returns true if the argument contains a sequence of ones with the remainder zero (64 bit version.)

Definition at line 356 of file MathExtras.h.

References isMask_64().

Referenced by isBitfieldPositioningOp(), isShiftedMask(), and llvm::AArch64_AM::processLogicalImmediate().

template<unsigned N, unsigned S>
bool llvm::isShiftedUInt ( uint64_t  x)
inline

isShiftedUInt<N,S> - Checks if a unsigned integer is an N bit number shifted left by S.

Definition at line 317 of file MathExtras.h.

bool llvm::isStatepoint ( const ImmutableCallSite CS)
bool llvm::isStatepoint ( const Instruction inst)

Definition at line 26 of file Statepoint.cpp.

References isStatepoint().

bool llvm::isStatepoint ( const Instruction inst)

Definition at line 33 of file Statepoint.cpp.

References isStatepoint().

bool llvm::isSurface ( const llvm::Value val)
bool llvm::isTexture ( const llvm::Value val)
static bool llvm::isTriviallyVectorizable ( Intrinsic::ID  ID)
inlinestatic
template<unsigned N>
bool llvm::isUInt ( uint64_t  x)
inline

isUInt - Checks if an unsigned integer fits into the given bit width.

Definition at line 297 of file MathExtras.h.

References N.

template<>
bool llvm::isUInt< 16 > ( uint64_t  x)
inline
template<>
bool llvm::isUInt< 32 > ( uint64_t  x)
inline

Definition at line 310 of file MathExtras.h.

Referenced by llvm::MCDwarfFrameEmitter::EncodeAdvanceLoc(), and foldImmediates().

template<>
bool llvm::isUInt< 8 > ( uint64_t  x)
inline
bool llvm::isUIntN ( unsigned  N,
uint64_t  x 
)
inline

isUIntN - Checks if an unsigned integer fits into the given (dynamic) bit width.

Definition at line 323 of file MathExtras.h.

References N.

Referenced by llvm::MCStreamer::EmitIntValue(), llvm::MCDwarfFrameEmitter::EncodeAdvanceLoc(), isExtendedBUILD_VECTOR(), and llvm::SelectionDAGBuilder::visitBitTestHeader().

static bool llvm::isUncondBranchOpcode ( int  Opc)
inlinestatic
static bool llvm::isUncondBranchOpcode ( int  Opc)
inlinestatic

Definition at line 406 of file ARMBaseInstrInfo.h.

template<typename InstrType >
bool llvm::isV8EligibleForIT ( InstrType *  Instr)
inline

Definition at line 25 of file ARMFeatures.h.

References IsCPSRDead().

Referenced by llvm::ARMBaseInstrInfo::isPredicable().

bool llvm::isValidAssumeForContext ( const Instruction I,
const Instruction CxtI,
const DataLayout DL = nullptr,
const DominatorTree DT = nullptr 
)

Return true if it is valid to use the assumptions provided by an assume intrinsic, I, at the point in the control-flow identified by the context instruction, CxtI.

Definition at line 441 of file ValueTracking.cpp.

References isValidAssumeForContext().

Referenced by computeKnownBitsFromAssume(), and llvm::InstCombiner::visitCallInst().

static bool llvm::isValidMCLOHType ( unsigned  Kind)
inlinestatic
static bool llvm::isZeroInit ( const SectionRef Section)
static
static std::string llvm::itostr ( int64_t  X)
inlinestatic
static int llvm::jit_noop ( )
static
template<typename IteratorT >
std::string llvm::join ( IteratorT  Begin,
IteratorT  End,
StringRef  Separator 
)
inline

Joins the strings in the range [Begin, End), adding Separator between the elements.

Definition at line 205 of file StringExtras.h.

References join_impl().

template<typename IteratorT >
std::string llvm::join_impl ( IteratorT  Begin,
IteratorT  End,
StringRef  Separator,
std::input_iterator_tag   
)
inline

Definition at line 169 of file StringExtras.h.

Referenced by join().

template<typename IteratorT >
std::string llvm::join_impl ( IteratorT  Begin,
IteratorT  End,
StringRef  Separator,
std::forward_iterator_tag   
)
inline

Definition at line 184 of file StringExtras.h.

References I, and llvm::StringRef::size().

FormattedString llvm::left_justify ( StringRef  Str,
unsigned  Width 
)
inline

left_justify - append spaces after string so total output is Width characters. If Str is larger that Width, full string is written with no padding.

Definition at line 244 of file Format.h.

void llvm::linkErlangGC ( )

Creates an erlang-compatible garbage collector.

Definition at line 44 of file ErlangGC.cpp.

void llvm::linkErlangGCPrinter ( )

Creates an erlang-compatible metadata printer.

Definition at line 48 of file ErlangGCPrinter.cpp.

void llvm::linkOcamlGC ( )

Creates an ocaml-compatible garbage collector.

FIXME: Collector instances are not useful on their own. These no longer serve any purpose except to link in the plugins.

Definition at line 32 of file OcamlGC.cpp.

void llvm::linkOcamlGCPrinter ( )

Creates an ocaml-compatible metadata printer.

Definition at line 48 of file OcamlGCPrinter.cpp.

void llvm::linkShadowStackGC ( )

Creates a shadow stack garbage collector. This collector requires no code generator support.

Definition at line 196 of file ShadowStackGC.cpp.

void llvm::linkStatepointExampleGC ( )

Definition at line 53 of file StatepointExampleGC.cpp.

void llvm::lintFunction ( const Function f)

lintFunction - Check a function for errors, printing messages on stderr.

Parameters
fThe function to be checked

Definition at line 710 of file Lint.cpp.

References assert(), llvm::GlobalValue::getParent(), and llvm::GlobalValue::isDeclaration().

void llvm::lintModule ( const Module M)

Check a module.

This should only be used for debugging, because it plays games with PassManagers and stuff.

lintModule - Check a module for errors, printing messages on stderr.

Parameters
MThe module to be checked

Definition at line 722 of file Lint.cpp.

References llvm::PassManager< IRUnitT >::run().

void llvm::llvm_execute_on_thread ( void(*)(void *)  UserFn,
void *  UserData,
unsigned  RequestedStackSize = 0 
)

llvm_execute_on_thread - Execute the given UserFn on a separate thread, passing it the provided UserData and waits for thread completion.

This function does not guarantee that the code will actually be executed on a separate thread or honoring the requested stack size, but tries to do so where system support is available.

Parameters
UserFn- The callback to execute.
UserData- An argument to pass to the callback function.
RequestedStackSize- If non-zero, a requested size (in bytes) for the thread stack.

Definition at line 44 of file Threading.cpp.

References ExecuteOnThread_Dispatch().

Referenced by llvm::CrashRecoveryContext::RunSafelyOnThread().

bool llvm::llvm_is_multithreaded ( )
void llvm::llvm_shutdown ( )

llvm_shutdown - Deallocate and destroy all ManagedStatic variables.

Definition at line 85 of file ManagedStatic.cpp.

References llvm::ManagedStaticBase::destroy(), getManagedStaticMutex(), Lock, and StaticList.

Referenced by LLVMShutdown(), and llvm::llvm_shutdown_obj::~llvm_shutdown_obj().

void llvm::llvm_unreachable_internal ( const char *  msg = nullptr,
const char *  file = nullptr,
unsigned  line = 0 
)

This function calls abort(), and prints the optional message to stderr. Use the llvm_unreachable macro (that adds location info), instead of calling this function directly.

Definition at line 106 of file ErrorHandling.cpp.

References dbgs().

static unsigned llvm::LO10 ( int64_t  imm)
inlinestatic

Definition at line 121 of file Sparc.h.

Referenced by LOX10(), and replaceFI().

uint32_t llvm::Lo_32 ( uint64_t  Value)
inline

Lo_32 - This function returns the low 32 bits of a 64 bit value.

Definition at line 259 of file MathExtras.h.

static cl::opt<PluginLoader, false, cl::parser<std::string> > llvm::LoadOpt ( "load"  ,
cl::ZeroOrMore  ,
cl::  value_desc"pluginfilename",
cl::  desc"Load the specified plugin" 
)
static
unsigned llvm::Log2_32 ( uint32_t  Value)
inline
unsigned llvm::Log2_32_Ceil ( uint32_t  Value)
inline
unsigned llvm::Log2_64 ( uint64_t  Value)
inline
unsigned llvm::Log2_64_Ceil ( uint64_t  Value)
inline

Log2_64_Ceil - This function returns the ceil log base 2 of the specified value, 64 if the value is zero. (64 bit edition.)

Definition at line 470 of file MathExtras.h.

References countLeadingZeros().

Referenced by genConstMult(), and llvm::ArrayRecycler< T, Align >::Capacity::get().

void llvm::LowerARMMachineInstrToMCInst ( const MachineInstr MI,
MCInst OutMI,
ARMAsmPrinter AP 
)
bool llvm::LowerDbgDeclare ( Function F)
void llvm::LowerPPCMachineInstrToMCInst ( const MachineInstr MI,
MCInst OutMI,
AsmPrinter AP,
bool  isDarwin 
)
void llvm::LowerSparcMachineInstrToMCInst ( const MachineInstr MI,
MCInst OutMI,
AsmPrinter AP 
)
static unsigned llvm::LOX10 ( int64_t  imm)
inlinestatic

Definition at line 129 of file Sparc.h.

References LO10().

Referenced by replaceFI().

uint64_t llvm::Make_64 ( uint32_t  High,
uint32_t  Low 
)
inline

Make_64 - This functions makes a 64-bit integer from a high / low pair of 32-bit integers.

Definition at line 265 of file MathExtras.h.

std::error_code llvm::make_error_code ( sampleprof_error  E)
inline

Definition at line 38 of file SampleProf.h.

References sampleprof_category().

std::error_code llvm::make_error_code ( instrprof_error  E)
inline

Definition at line 40 of file InstrProf.h.

References instrprof_category().

std::error_code llvm::make_error_code ( errc  E)
inline

Definition at line 78 of file Errc.h.

std::error_code llvm::make_error_code ( BitcodeError  E)
inline
template<class T >
iterator_range<T> llvm::make_range ( T  x,
T  y 
)
template<typename T >
iterator_range<T> llvm::make_range ( std::pair< T, T p)

Definition at line 51 of file iterator_range.h.

template<class T >
std::enable_if<!std::is_array<T>::value, std::unique_ptr<T> >::type llvm::make_unique ( )

Definition at line 436 of file STLExtras.h.

References T.

template<class T , class Arg1 >
std::enable_if<!std::is_array<T>::value, std::unique_ptr<T> >::type llvm::make_unique ( Arg1 &&  arg1)

Definition at line 442 of file STLExtras.h.

References T.

template<class T , class Arg1 , class Arg2 >
std::enable_if<!std::is_array<T>::value, std::unique_ptr<T> >::type llvm::make_unique ( Arg1 &&  arg1,
Arg2 &&  arg2 
)

Definition at line 448 of file STLExtras.h.

References T.

template<class T , class Arg1 , class Arg2 , class Arg3 >
std::enable_if<!std::is_array<T>::value, std::unique_ptr<T> >::type llvm::make_unique ( Arg1 &&  arg1,
Arg2 &&  arg2,
Arg3 &&  arg3 
)

Definition at line 455 of file STLExtras.h.

References T.

template<class T , class Arg1 , class Arg2 , class Arg3 , class Arg4 >
std::enable_if<!std::is_array<T>::value, std::unique_ptr<T> >::type llvm::make_unique ( Arg1 &&  arg1,
Arg2 &&  arg2,
Arg3 &&  arg3,
Arg4 &&  arg4 
)

Definition at line 463 of file STLExtras.h.

References T.

template<class T , class Arg1 , class Arg2 , class Arg3 , class Arg4 , class Arg5 >
std::enable_if<!std::is_array<T>::value, std::unique_ptr<T> >::type llvm::make_unique ( Arg1 &&  arg1,
Arg2 &&  arg2,
Arg3 &&  arg3,
Arg4 &&  arg4,
Arg5 &&  arg5 
)

Definition at line 471 of file STLExtras.h.

References T.

template<class T , class Arg1 , class Arg2 , class Arg3 , class Arg4 , class Arg5 , class Arg6 >
std::enable_if<!std::is_array<T>::value, std::unique_ptr<T> >::type llvm::make_unique ( Arg1 &&  arg1,
Arg2 &&  arg2,
Arg3 &&  arg3,
Arg4 &&  arg4,
Arg5 &&  arg5,
Arg6 &&  arg6 
)

Definition at line 481 of file STLExtras.h.

References T.

template<class T , class Arg1 , class Arg2 , class Arg3 , class Arg4 , class Arg5 , class Arg6 , class Arg7 >
std::enable_if<!std::is_array<T>::value, std::unique_ptr<T> >::type llvm::make_unique ( Arg1 &&  arg1,
Arg2 &&  arg2,
Arg3 &&  arg3,
Arg4 &&  arg4,
Arg5 &&  arg5,
Arg6 &&  arg6,
Arg7 &&  arg7 
)

Definition at line 492 of file STLExtras.h.

References T.

template<class T , class Arg1 , class Arg2 , class Arg3 , class Arg4 , class Arg5 , class Arg6 , class Arg7 , class Arg8 >
std::enable_if<!std::is_array<T>::value, std::unique_ptr<T> >::type llvm::make_unique ( Arg1 &&  arg1,
Arg2 &&  arg2,
Arg3 &&  arg3,
Arg4 &&  arg4,
Arg5 &&  arg5,
Arg6 &&  arg6,
Arg7 &&  arg7,
Arg8 &&  arg8 
)

Definition at line 504 of file STLExtras.h.

References T.

template<class T , class Arg1 , class Arg2 , class Arg3 , class Arg4 , class Arg5 , class Arg6 , class Arg7 , class Arg8 , class Arg9 >
std::enable_if<!std::is_array<T>::value, std::unique_ptr<T> >::type llvm::make_unique ( Arg1 &&  arg1,
Arg2 &&  arg2,
Arg3 &&  arg3,
Arg4 &&  arg4,
Arg5 &&  arg5,
Arg6 &&  arg6,
Arg7 &&  arg7,
Arg8 &&  arg8,
Arg9 &&  arg9 
)

Definition at line 516 of file STLExtras.h.

References T.

template<class T , class Arg1 , class Arg2 , class Arg3 , class Arg4 , class Arg5 , class Arg6 , class Arg7 , class Arg8 , class Arg9 , class Arg10 >
std::enable_if<!std::is_array<T>::value, std::unique_ptr<T> >::type llvm::make_unique ( Arg1 &&  arg1,
Arg2 &&  arg2,
Arg3 &&  arg3,
Arg4 &&  arg4,
Arg5 &&  arg5,
Arg6 &&  arg6,
Arg7 &&  arg7,
Arg8 &&  arg8,
Arg9 &&  arg9,
Arg10 &&  arg10 
)

Definition at line 529 of file STLExtras.h.

References T.

template<class T >
std::enable_if<std::is_array<T>::value &&std::extent<T>::value == 0, std::unique_ptr<T> >::type llvm::make_unique ( size_t  n)

Definition at line 542 of file STLExtras.h.

template<typename T >
std::vector<T> llvm::make_vector ( T  A,
  ... 
)
inline

make_vector - Helper function which is useful for building temporary vectors to pass into type construction of CallInst ctors. This turns a null terminated list of pointers (or other value types) into a real live vector.

Definition at line 70 of file NVPTXUtilities.h.

template<typename T >
ArrayRef<T> llvm::makeArrayRef ( const T OneElt)

Construct an ArrayRef from a single element.

Definition at line 345 of file ArrayRef.h.

Referenced by llvm::APInt::APInt(), appendToGlobalArray(), BuildSubAggregate(), CombineBaseUpdate(), CombineVLDDUP(), llvm::APFloat::convertFromZeroExtendedInteger(), createCast(), DecodeFixedType(), llvm::Instruction::dropUnknownMetadata(), llvm::StringRef::edit_distance(), llvm::StructType::elements(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::ARM::WinEH::ExceptionDataRecord::EpilogueScopes(), ExtractSubVector(), llvm::MD5::final(), FindInsertedValue(), GenerateTBL(), get64BitArgumentGPRs(), get64BitArgumentXMMs(), getBuildVectorSplat(), llvm::MipsABIInfo::GetByValArgRegs(), llvm::ConstantExpr::getGetElementPtr(), llvm::ShuffleVectorSDNode::getMask(), llvm::MachineTraceMetrics::getProcResourceCycles(), llvm::MachineTraceMetrics::Ensemble::getProcResourceDepths(), llvm::MachineTraceMetrics::Ensemble::getProcResourceHeights(), llvm::TargetRegisterClass::getRawAllocationOrder(), llvm::object::ELFFile< ELFT >::getSectionContents(), llvm::object::MachOObjectFile::getSectionRawFinalSegmentName(), llvm::object::MachOObjectFile::getSectionRawName(), llvm::ConstantDataArray::getString(), llvm::object::COFFObjectFile::getSymbolAuxData(), getTypePartition(), llvm::MipsABIInfo::GetVarArgRegs(), LLVMBuildCall(), LLVMBuildInvoke(), LLVMConstExtractValue(), LLVMConstInsertValue(), LLVMConstIntOfArbitraryPrecision(), LLVMConstNamedStruct(), LLVMConstStructInContext(), LLVMConstVector(), LLVMMDNodeInContext(), llvm::SystemZTargetLowering::LowerFormalArguments(), lowerMSASplatZExt(), lowerUINT_TO_FP_vXi32(), llvm::SDNode::ops(), llvm::FunctionType::params(), performANDCombine(), performNEONPostLDSTCombine(), performSRACombine(), PrepareCall(), llvm::SMDiagnostic::print(), llvm::AttributeSetNode::Profile(), llvm::AttributeSetImpl::Profile(), llvm::RawInstrProfReader< IntPtrT >::readNextRecord(), llvm::coverage::ObjectFileCoverageMappingReader::readNextRecord(), llvm::LiveRangeEdit::regs(), llvm::Type::subtypes(), SymbolicallyEvaluateGEP(), llvm::APFloat::toString(), llvm::ARM::WinEH::ExceptionDataRecord::UnwindByteCode(), llvm::MD5::update(), llvm::InstCombiner::visitCallInst(), and llvm::InstCombiner::visitExtractValueInst().

template<typename T >
ArrayRef<T> llvm::makeArrayRef ( const T data,
size_t  length 
)

Construct an ArrayRef from a pointer and length.

Definition at line 351 of file ArrayRef.h.

template<typename T >
ArrayRef<T> llvm::makeArrayRef ( const T begin,
const T end 
)

Construct an ArrayRef from a range.

Definition at line 357 of file ArrayRef.h.

References llvm::sys::path::begin(), and llvm::sys::path::end().

template<typename T >
ArrayRef<T> llvm::makeArrayRef ( const SmallVectorImpl< T > &  Vec)

Construct an ArrayRef from a SmallVector.

Definition at line 363 of file ArrayRef.h.

template<typename T , unsigned N>
ArrayRef<T> llvm::makeArrayRef ( const SmallVector< T, N > &  Vec)

Construct an ArrayRef from a SmallVector.

Definition at line 369 of file ArrayRef.h.

template<typename T >
ArrayRef<T> llvm::makeArrayRef ( const std::vector< T > &  Vec)

Construct an ArrayRef from a std::vector.

Definition at line 375 of file ArrayRef.h.

template<typename T , size_t N>
ArrayRef<T> llvm::makeArrayRef ( const T(&)  Arr[N])

Construct an ArrayRef from a C array.

Definition at line 381 of file ArrayRef.h.

llvm::DenseMap< const llvm::Function *, llvm::DISubprogram > llvm::makeSubprogramMap ( const Module M)
template<class ItTy , class FuncTy >
mapped_iterator<ItTy, FuncTy> llvm::map_iterator ( const ItTy &  I,
FuncTy  F 
)
inline
Metadata * llvm::MapMetadata ( const Metadata MD,
ValueToValueMapTy VM,
RemapFlags  Flags = RF_None,
ValueMapTypeRemapper TypeMapper = nullptr,
ValueMaterializer Materializer = nullptr 
)
MDNode * llvm::MapMetadata ( const MDNode MD,
ValueToValueMapTy VM,
RemapFlags  Flags = RF_None,
ValueMapTypeRemapper TypeMapper = nullptr,
ValueMaterializer Materializer = nullptr 
)

MapMetadata - provide versions that preserve type safety for MDNodes.

Definition at line 403 of file ValueMapper.cpp.

References MapMetadata().

Value * llvm::MapValue ( const Value V,
ValueToValueMapTy VM,
RemapFlags  Flags = RF_None,
ValueMapTypeRemapper TypeMapper = nullptr,
ValueMaterializer Materializer = nullptr 
)
Constant* llvm::MapValue ( const Constant *  V,
ValueToValueMapTy &  VM,
RemapFlags  Flags = RF_None,
ValueMapTypeRemapper *  TypeMapper = nullptr,
ValueMaterializer *  Materializer = nullptr 
)
inline

MapValue - provide versions that preserve type safety for Constants.

Definition at line 91 of file ValueMapper.h.

References MapValue().

std::error_code llvm::mapWindowsError ( unsigned  EV)
bool llvm::MaskedValueIsZero ( Value V,
const APInt Mask,
const DataLayout TD = nullptr,
unsigned  Depth = 0,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr 
)

MaskedValueIsZero - Return true if 'V & Mask' is known to be zero. We use this predicate to simplify operations downstream. Mask is known to be zero for bits that V cannot have.

This function is defined on values with integer type, values with pointer type (but only if TD is non-null), and vectors of integers. In the case where V is a vector, the mask, known zero, and known one values are the same width as the vector element, and the bit is set only if it is true for all of the elements in the vector.

Definition at line 146 of file ValueTracking.cpp.

References MaskedValueIsZero(), and safeCxtI().

Referenced by CanEvaluateShifted(), GetLinearExpression(), llvm::InstCombiner::MaskedValueIsZero(), SimplifyOrInst(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAnd(), llvm::InstCombiner::visitAShr(), llvm::InstCombiner::visitLShr(), llvm::InstCombiner::visitMul(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitSDiv(), llvm::InstCombiner::visitShl(), llvm::InstCombiner::visitSRem(), llvm::InstCombiner::visitXor(), and llvm::InstCombiner::visitZExt().

LLVM_READONLY APFloat llvm::maxnum ( const APFloat &  A,
const APFloat &  B 
)
inline

Implements IEEE maxNum semantics. Returns the larger of the 2 arguments if both are not NaN. If either argument is a NaN, returns the other argument.

Definition at line 672 of file APFloat.h.

References llvm::APFloat::cmpLessThan, llvm::APFloat::compare(), and llvm::APFloat::isNaN().

Referenced by ConstantFoldScalarCall().

static void llvm::maybePrintComdat ( formatted_raw_ostream Out,
const GlobalObject GO 
)
static
static StringRef llvm::MCLOHDirectiveName ( )
inlinestatic

Definition at line 44 of file MCLinkerOptimizationHint.h.

static StringRef llvm::MCLOHIdToName ( MCLOHType  Kind)
inlinestatic

Definition at line 66 of file MCLinkerOptimizationHint.h.

References MCLOHCaseIdToName.

static int llvm::MCLOHIdToNbArgs ( MCLOHType  Kind)
inlinestatic
static int llvm::MCLOHNameToId ( StringRef  Name)
inlinestatic

Definition at line 52 of file MCLinkerOptimizationHint.h.

References MCLOHCaseNameToId, and Name.

void llvm::MergeBasicBlockIntoOnlyPred ( BasicBlock DestBB,
Pass P = nullptr 
)

MergeBasicBlockIntoOnlyPred - BB is a block with one predecessor and its predecessor is known to have one successor (BB!). Eliminate the edge between them, moving the instructions in the predecessor into BB. This deletes the predecessor block.

MergeBasicBlockIntoOnlyPred - DestBB is a block with one predecessor and its predecessor is known to have one successor (DestBB!). Eliminate the edge between them, moving the instructions in the predecessor into DestBB and deleting the predecessor block.

Definition at line 492 of file Local.cpp.

References assert(), llvm::BasicBlock::begin(), llvm::DominatorTreeBase< N >::changeImmediateDominator(), llvm::BlockAddress::destroyConstant(), llvm::Instruction::eraseFromParent(), llvm::BasicBlock::eraseFromParent(), llvm::DominatorTreeBase< N >::eraseNode(), llvm::ConstantInt::get(), llvm::BlockAddress::get(), llvm::UndefValue::get(), llvm::Pass::getAnalysisIfAvailable(), llvm::Value::getContext(), llvm::Function::getEntryBlock(), llvm::BasicBlock::getInstList(), llvm::Type::getInt32Ty(), llvm::ConstantExpr::getIntToPtr(), llvm::DominatorTreeBase< N >::getNode(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getSinglePredecessor(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::BasicBlock::hasAddressTaken(), llvm::BasicBlock::moveAfter(), llvm::Value::replaceAllUsesWith(), and llvm::iplist< NodeTy, Traits >::splice().

bool llvm::MergeBlockIntoPredecessor ( BasicBlock BB,
Pass P = nullptr 
)
uint64_t llvm::MinAlign ( uint64_t  A,
uint64_t  B 
)
inline
LLVM_READONLY APFloat llvm::minnum ( const APFloat &  A,
const APFloat &  B 
)
inline

Implements IEEE minNum semantics. Returns the smaller of the 2 arguments if both are not NaN. If either argument is a NaN, returns the other argument.

Definition at line 661 of file APFloat.h.

References llvm::APFloat::cmpLessThan, llvm::APFloat::compare(), and llvm::APFloat::isNaN().

Referenced by ConstantFoldScalarCall().

template<class T , class V >
std::enable_if< std::is_constructible<T, V>::value , typename std::remove_reference<V>::type>::type&& llvm::moveIfMoveConstructible ( V &  Val)

Definition at line 29 of file ErrorOr.h.

template<class T , class V >
std::enable_if< !std::is_constructible<T, V>::value , typename std::remove_reference<V>::type>::type& llvm::moveIfMoveConstructible ( V &  Val)

Definition at line 36 of file ErrorOr.h.

uint64_t llvm::NextPowerOf2 ( uint64_t  A)
inline
static float llvm::normalizeSpillWeight ( float  UseDefFreq,
unsigned  Size,
unsigned  NumInstr 
)
inlinestatic

Normalize the spill weight of a live interval.

The spill weight of a live interval is computed as:

(sum(use freq) + sum(def freq)) / (K + size)

Parameters
UseDefFreqExpected number of executed use and def instructions per function call. Derived from block frequencies.
SizeSize of live interval as returnexd by getSize()
NumInstrNumber of instructions using this live interval

Definition at line 35 of file CalcSpillWeights.h.

References llvm::SlotIndex::InstrDist.

Referenced by normalizePBQPSpillWeight().

raw_ostream & llvm::nulls ( )
static const char* llvm::NVPTXCondCodeToString ( NVPTXCC::CondCodes  CC)
inlinestatic
template<class C >
void* llvm::object_creator ( )

object_creator - Helper method for ManagedStatic.

Definition at line 25 of file ManagedStatic.h.

References llvm::CallingConv::C.

uint64_t llvm::OffsetToAlignment ( uint64_t  Value,
uint64_t  Align 
)
inline

Returns the offset to the next integer (mod 2**64) that is greater than or equal to Value and is a multiple of Align. Align must be non-zero.

Definition at line 607 of file MathExtras.h.

References RoundUpToAlignment().

Referenced by llvm::MCAssembler::computeFragmentSize(), llvm::OnDiskChainedHashTableGenerator< Info >::Emit(), llvm::RuntimeDyldImpl::emitCommonSymbols(), llvm::MachObjectWriter::getPaddingSize(), llvm::MachObjectWriter::WriteLinkerOptionsLoadCommand(), and llvm::MachObjectWriter::WriteObject().

bool llvm::onlyUsedByLifetimeMarkers ( const Value V)

Return true if the only users of this pointer are lifetime markers.

onlyUsedByLifetimeMarkers - Return true if the only users of this pointer are lifetime markers.

Definition at line 2533 of file ValueTracking.cpp.

References dyn_cast(), llvm::IntrinsicInst::getIntrinsicID(), llvm::Intrinsic::lifetime_end, llvm::Intrinsic::lifetime_start, and llvm::Value::users().

Referenced by isAllocaPromotable(), and tryToMakeAllocaBePromotable().

bool llvm::operator!= ( const MCTargetOptions &  LHS,
const MCTargetOptions &  RHS 
)
inline

Definition at line 62 of file MCTargetOptions.h.

bool llvm::operator!= ( const MachineLocation &  LHS,
const MachineLocation &  RHS 
)
inline

Definition at line 77 of file MachineLocation.h.

template<typename PT1 , typename PT2 >
static bool llvm::operator!= ( PointerUnion< PT1, PT2 >  lhs,
PointerUnion< PT1, PT2 >  rhs 
)
static

Definition at line 193 of file PointerUnion.h.

References llvm::PointerUnion< PT1, PT2 >::getOpaqueValue().

template<class T , class U >
bool llvm::operator!= ( const IntrusiveRefCntPtr< T > &  A,
const IntrusiveRefCntPtr< U > &  B 
)
inline

Definition at line 213 of file IntrusiveRefCntPtr.h.

template<typename T , typename U >
void llvm::operator!= ( const Optional< T > &  X,
const Optional< U > &  Y 
)

Poison comparison between two Optional objects. Clients needs to explicitly compare the underlying values and account for empty Optional objects.

This routine will never be defined. It returns void to help diagnose errors at compile time.

template<class T , class U >
bool llvm::operator!= ( const IntrusiveRefCntPtr< T > &  A,
U *  B 
)
inline

Definition at line 227 of file IntrusiveRefCntPtr.h.

template<class T , class U >
bool llvm::operator!= ( T A,
const IntrusiveRefCntPtr< U > &  B 
)
inline

Definition at line 241 of file IntrusiveRefCntPtr.h.

template<typename T >
bool llvm::operator!= ( const T LHS,
const ilist_iterator< const T > &  RHS 
)

Definition at line 252 of file ilist.h.

template<class T >
bool llvm::operator!= ( std::nullptr_t  A,
const IntrusiveRefCntPtr< T > &  B 
)

Definition at line 258 of file IntrusiveRefCntPtr.h.

template<typename T >
bool llvm::operator!= ( T LHS,
const ilist_iterator< T > &  RHS 
)

Definition at line 260 of file ilist.h.

References llvm::ilist_iterator< NodeTy >::getNodePtrUnchecked().

template<class T >
bool llvm::operator!= ( const IntrusiveRefCntPtr< T > &  A,
std::nullptr_t  B 
)

Definition at line 263 of file IntrusiveRefCntPtr.h.

bool llvm::operator!= ( int64_t  V1,
const APSInt &  V2 
)
inline

Definition at line 291 of file APSInt.h.

bool llvm::operator!= ( const TargetOptions &  LHS,
const TargetOptions &  RHS 
)
inline

Definition at line 301 of file TargetOptions.h.

template<typename T >
bool llvm::operator!= ( ArrayRef< T LHS,
ArrayRef< T RHS 
)
inline

Definition at line 395 of file ArrayRef.h.

bool llvm::operator!= ( StringRef  LHS,
StringRef  RHS 
)
inline

Definition at line 534 of file StringRef.h.

bool llvm::operator!= ( uint64_t  V1,
const APInt &  V2 
)
inline

Definition at line 1724 of file APInt.h.

SmallBitVector llvm::operator& ( const SmallBitVector &  LHS,
const SmallBitVector &  RHS 
)
inline

Definition at line 579 of file SmallBitVector.h.

template<unsigned ElementSize>
SparseBitVector<ElementSize> llvm::operator& ( const SparseBitVector< ElementSize > &  LHS,
const SparseBitVector< ElementSize > &  RHS 
)
inline

Definition at line 862 of file SparseBitVector.h.

template<unsigned ElementSize>
bool llvm::operator&= ( SparseBitVector< ElementSize > *  LHS,
const SparseBitVector< ElementSize > &  RHS 
)
inline

Definition at line 838 of file SparseBitVector.h.

template<unsigned ElementSize>
bool llvm::operator&= ( SparseBitVector< ElementSize > &  LHS,
const SparseBitVector< ElementSize > *  RHS 
)
inline

Definition at line 844 of file SparseBitVector.h.

template<typename T >
void llvm::operator+ ( int  ,
ilist_iterator< T  
)
template<typename T >
void llvm::operator+ ( ilist_iterator< T ,
int   
)
template<class _Iterator , class Func >
mapped_iterator<_Iterator, Func> llvm::operator+ ( typename mapped_iterator< _Iterator, Func >::difference_type  N,
const mapped_iterator< _Iterator, Func > &  X 
)
inline
Twine llvm::operator+ ( const Twine &  LHS,
const Twine &  RHS 
)
inline

Definition at line 500 of file Twine.h.

References llvm::Twine::concat().

Twine llvm::operator+ ( const char *  LHS,
const StringRef &  RHS 
)
inline

Additional overload to guarantee simplified codegen; this is equivalent to concat().

Definition at line 507 of file Twine.h.

Twine llvm::operator+ ( const StringRef &  LHS,
const char *  RHS 
)
inline

Additional overload to guarantee simplified codegen; this is equivalent to concat().

Definition at line 514 of file Twine.h.

std::string& llvm::operator+= ( std::string &  buffer,
StringRef  string 
)
inline

Definition at line 554 of file StringRef.h.

template<typename T >
void llvm::operator- ( int  ,
ilist_iterator< T  
)
template<typename T >
void llvm::operator- ( ilist_iterator< T ,
int   
)
template<unsigned ElementSize>
SparseBitVector<ElementSize> llvm::operator- ( const SparseBitVector< ElementSize > &  LHS,
const SparseBitVector< ElementSize > &  RHS 
)
inline
bool llvm::operator< ( const DebugLocEntry::Value &  A,
const DebugLocEntry::Value &  B 
)
inline

Compare two pieces based on their offset.

Definition at line 177 of file DebugLocEntry.h.

References llvm::DebugLocEntry::Value::getExpression(), and llvm::DIExpression::getPieceOffset().

template<typename T , typename U >
void llvm::operator< ( const Optional< T > &  X,
const Optional< U > &  Y 
)

Poison comparison between two Optional objects. Clients needs to explicitly compare the underlying values and account for empty Optional objects.

This routine will never be defined. It returns void to help diagnose errors at compile time.

bool llvm::operator< ( SlotIndex  V,
const IdxMBBPair &  IM 
)
inline

Definition at line 317 of file SlotIndexes.h.

bool llvm::operator< ( const IdxMBBPair &  IM,
SlotIndex  V 
)
inline

Definition at line 321 of file SlotIndexes.h.

bool llvm::operator< ( StringRef  LHS,
StringRef  RHS 
)
inline

Definition at line 538 of file StringRef.h.

References llvm::StringRef::compare().

bool llvm::operator< ( SlotIndex  V,
const LiveRange::Segment &  S 
)
inline

Definition at line 745 of file LiveInterval.h.

References llvm::LiveRange::Segment::start.

bool llvm::operator< ( const LiveRange::Segment &  S,
SlotIndex  V 
)
inline

Definition at line 749 of file LiveInterval.h.

References llvm::LiveRange::Segment::start.

MCStreamer & llvm::operator<< ( MCStreamer OS,
MipsABIFlagsSection ABIFlagsSection 
)
raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const MCLabel &  Label 
)
inline

Definition at line 52 of file MCLabel.h.

References llvm::MCLabel::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const Comdat &  C 
)
inline

Definition at line 59 of file Comdat.h.

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const MachineConstantPoolValue &  V 
)
inline

Definition at line 65 of file MachineConstantPool.h.

References llvm::MachineConstantPoolValue::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const MCParsedAsmOperand &  MO 
)
inline

Definition at line 80 of file MCParsedAsmOperand.h.

References llvm::MCParsedAsmOperand::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const BranchProbability &  Prob 
)
inline

Definition at line 83 of file BranchProbability.h.

References llvm::BranchProbability::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const Metadata &  MD 
)
inline

Definition at line 97 of file Metadata.h.

References llvm::Metadata::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const MCExpr &  E 
)
inline

Definition at line 127 of file MCExpr.h.

References llvm::MCExpr::print().

raw_ostream& llvm::operator<< ( raw_ostream &  O,
const ARMConstantPoolValue &  V 
)
inline

Definition at line 128 of file ARMConstantPoolValue.h.

References llvm::ARMConstantPoolValue::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const RecTy &  Ty 
)
inline

Definition at line 135 of file Record.h.

References llvm::RecTy::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const LivePhysRegs &  LR 
)
inline

Definition at line 139 of file LivePhysRegs.h.

References llvm::LivePhysRegs::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const SCEV &  S 
)
inline

Definition at line 154 of file ScalarEvolution.h.

References llvm::SCEV::print().

template<class NodeT >
raw_ostream& llvm::operator<< ( raw_ostream &  o,
const DomTreeNodeBase< NodeT > *  Node 
)

Definition at line 154 of file GenericDomTree.h.

References Node.

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const MCSymbol &  Sym 
)
inline

Definition at line 175 of file MCSymbol.h.

References llvm::MCSymbol::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const VirtRegMap &  VRM 
)
inline

Definition at line 184 of file VirtRegMap.h.

References llvm::VirtRegMap::print().

LLVM_DUMP_METHOD raw_ostream & llvm::operator<< ( raw_ostream OS,
const ILPValue Val 
)

Definition at line 1538 of file ScheduleDAGInstrs.cpp.

References llvm::ILPValue::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const MCOperand &  MO 
)
inline

Definition at line 195 of file MCInst.h.

References llvm::MCOperand::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const MCInst &  MI 
)
inline

Definition at line 200 of file MCInst.h.

References llvm::MCInst::print().

raw_ostream & llvm::operator<< ( raw_ostream OS,
const MachineMemOperand MRO 
)

Definition at line 495 of file MachineInstr.cpp.

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const ConstantRange &  CR 
)
inline

Definition at line 258 of file ConstantRange.h.

References llvm::ConstantRange::print().

raw_ostream & llvm::operator<< ( raw_ostream OS,
const LVILatticeVal &  Val 
)

Definition at line 280 of file LazyValueInfo.cpp.

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const AliasSet &  AS 
)
inline

Definition at line 279 of file AliasSetTracker.h.

References llvm::AliasSet::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const APSInt &  I 
)
inline

Definition at line 295 of file APSInt.h.

References llvm::APSInt::isSigned(), and llvm::APInt::print().

raw_ostream& llvm::operator<< ( raw_ostream &  os,
SlotIndex  li 
)
inline

Definition at line 310 of file SlotIndexes.h.

References llvm::SlotIndex::print().

template<class BlockT , class LoopT >
raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const LoopBase< BlockT, LoopT > &  Loop 
)

Definition at line 343 of file LoopInfo.h.

References llvm::LoopBase< N, M >::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const MachineTraceMetrics::Trace &  Tr 
)
inline

Definition at line 385 of file MachineTraceMetrics.h.

References llvm::MachineTraceMetrics::Trace::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const MachineTraceMetrics::Ensemble &  En 
)
inline
static raw_ostream& llvm::operator<< ( raw_ostream &  OS,
Type T 
)
inlinestatic

Definition at line 429 of file Type.h.

References llvm::Type::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const AliasSetTracker &  AST 
)
inline

Definition at line 439 of file AliasSetTracker.h.

References llvm::AliasSetTracker::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const Twine &  RHS 
)
inline

Definition at line 518 of file Twine.h.

References llvm::Twine::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const Value &  V 
)
inline

Definition at line 535 of file Value.h.

References llvm::Value::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const Init &  I 
)
inline

Definition at line 554 of file Record.h.

References llvm::Init::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const LiveRange &  LR 
)
inline

Definition at line 568 of file LiveInterval.h.

References llvm::LiveRange::print().

template<class Tr >
raw_ostream & llvm::operator<< ( raw_ostream &  OS,
const RegionNodeBase< Tr > &  Node 
)
inline

Print a RegionNode.

Definition at line 896 of file RegionInfo.h.

References getName(), and llvm::RegionNodeBase< Tr >::isSubRegion().

raw_ostream& llvm::operator<< ( raw_ostream &  O,
const Module &  M 
)
inline

An raw_ostream inserter for modules.

Definition at line 672 of file Module.h.

References llvm::Module::print().

raw_ostream & llvm::operator<< ( raw_ostream OS,
const MachineBasicBlock MBB 
)

Definition at line 65 of file MachineBasicBlock.cpp.

References llvm::MachineBasicBlock::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const MachineOperand &  MO 
)
inline

Definition at line 730 of file MachineOperand.h.

References llvm::MachineOperand::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const LiveInterval &  LI 
)
inline

Definition at line 738 of file LiveInterval.h.

References llvm::LiveInterval::print().

template<class DigitsT >
raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const ScaledNumber< DigitsT > &  X 
)

Definition at line 740 of file ScaledNumber.h.

References X.

raw_ostream & llvm::operator<< ( raw_ostream OS,
const LiveRange::Segment S 
)
raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const LiveRangeUpdater &  X 
)
inline

Definition at line 807 of file LiveInterval.h.

References llvm::LiveRangeUpdater::print().

static raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const PrintReg &  PR 
)
inlinestatic

Definition at line 944 of file TargetRegisterInfo.h.

References llvm::PrintReg::print().

static raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const PrintRegUnit &  PR 
)
inlinestatic

Definition at line 968 of file TargetRegisterInfo.h.

References llvm::PrintRegUnit::print().

static raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const PrintVRegOrUnit &  PR 
)
inlinestatic

Definition at line 982 of file TargetRegisterInfo.h.

References llvm::PrintVRegOrUnit::print().

raw_ostream& llvm::operator<< ( raw_ostream OS,
const MCFixup AF 
)
raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const MachineInstr &  MI 
)
inline

Definition at line 1233 of file MachineInstr.h.

References llvm::MachineInstr::print().

raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const RecordVal &  RV 
)
inline

Definition at line 1379 of file Record.h.

References llvm::RecordVal::print().

raw_ostream & llvm::operator<< ( raw_ostream OS,
const Record R 
)
raw_ostream& llvm::operator<< ( raw_ostream &  OS,
const APInt &  I 
)
inline

Definition at line 1726 of file APInt.h.

References llvm::APInt::print().

raw_ostream & llvm::operator<< ( raw_ostream OS,
const RecordKeeper RK 
)
template<typename T , typename U >
void llvm::operator<= ( const Optional< T > &  X,
const Optional< U > &  Y 
)

Poison comparison between two Optional objects. Clients needs to explicitly compare the underlying values and account for empty Optional objects.

This routine will never be defined. It returns void to help diagnose errors at compile time.

bool llvm::operator<= ( StringRef  LHS,
StringRef  RHS 
)
inline

Definition at line 542 of file StringRef.h.

References llvm::StringRef::compare().

bool llvm::operator== ( const MCTargetOptions &  LHS,
const MCTargetOptions &  RHS 
)
inline

Definition at line 46 of file MCTargetOptions.h.

References ABIName(), ARE_EQUAL, DwarfVersion(), and ShowMCInst().

bool llvm::operator== ( const DebugLocEntry::Value &  A,
const DebugLocEntry::Value &  B 
)
inline
template<typename PT1 , typename PT2 >
static bool llvm::operator== ( PointerUnion< PT1, PT2 >  lhs,
PointerUnion< PT1, PT2 >  rhs 
)
static

Definition at line 187 of file PointerUnion.h.

References llvm::PointerUnion< PT1, PT2 >::getOpaqueValue().

template<class T , class U >
bool llvm::operator== ( const IntrusiveRefCntPtr< T > &  A,
const IntrusiveRefCntPtr< U > &  B 
)
inline

Definition at line 206 of file IntrusiveRefCntPtr.h.

template<typename T , typename U >
void llvm::operator== ( const Optional< T > &  X,
const Optional< U > &  Y 
)

Poison comparison between two Optional objects. Clients needs to explicitly compare the underlying values and account for empty Optional objects.

This routine will never be defined. It returns void to help diagnose errors at compile time.

template<class T , class U >
bool llvm::operator== ( const IntrusiveRefCntPtr< T > &  A,
U *  B 
)
inline

Definition at line 220 of file IntrusiveRefCntPtr.h.

template<class T , class U >
bool llvm::operator== ( T A,
const IntrusiveRefCntPtr< U > &  B 
)
inline

Definition at line 234 of file IntrusiveRefCntPtr.h.

template<class T >
bool llvm::operator== ( std::nullptr_t  A,
const IntrusiveRefCntPtr< T > &  B 
)

Definition at line 248 of file IntrusiveRefCntPtr.h.

template<class T >
bool llvm::operator== ( const IntrusiveRefCntPtr< T > &  A,
std::nullptr_t  B 
)

Definition at line 253 of file IntrusiveRefCntPtr.h.

References llvm::ARM_PROC::A.

template<typename T >
bool llvm::operator== ( const T LHS,
const ilist_iterator< const T > &  RHS 
)

Definition at line 256 of file ilist.h.

References llvm::ilist_iterator< NodeTy >::getNodePtrUnchecked().

template<typename T >
bool llvm::operator== ( T LHS,
const ilist_iterator< T > &  RHS 
)

Definition at line 264 of file ilist.h.

References llvm::ilist_iterator< NodeTy >::getNodePtrUnchecked().

bool llvm::operator== ( const TargetOptions &  LHS,
const TargetOptions &  RHS 
)
inline
template<class T , class E >
std::enable_if<std::is_error_code_enum<E>::value || std::is_error_condition_enum<E>::value, bool>::type llvm::operator== ( ErrorOr< T > &  Err,
Code 
)

Definition at line 284 of file ErrorOr.h.

References llvm::tgtok::Code.

bool llvm::operator== ( int64_t  V1,
const APSInt &  V2 
)
inline

Definition at line 288 of file APSInt.h.

template<typename T >
bool llvm::operator== ( ArrayRef< T LHS,
ArrayRef< T RHS 
)
inline

Definition at line 390 of file ArrayRef.h.

References llvm::ArrayRef< T >::equals().

bool llvm::operator== ( StringRef  LHS,
StringRef  RHS 
)
inline

Definition at line 530 of file StringRef.h.

References llvm::StringRef::equals().

bool llvm::operator== ( uint64_t  V1,
const APInt &  V2 
)
inline
template<typename T , typename U >
void llvm::operator> ( const Optional< T > &  X,
const Optional< U > &  Y 
)

Poison comparison between two Optional objects. Clients needs to explicitly compare the underlying values and account for empty Optional objects.

This routine will never be defined. It returns void to help diagnose errors at compile time.

bool llvm::operator> ( StringRef  LHS,
StringRef  RHS 
)
inline

Definition at line 546 of file StringRef.h.

References llvm::StringRef::compare().

template<typename T , typename U >
void llvm::operator>= ( const Optional< T > &  X,
const Optional< U > &  Y 
)

Poison comparison between two Optional objects. Clients needs to explicitly compare the underlying values and account for empty Optional objects.

This routine will never be defined. It returns void to help diagnose errors at compile time.

bool llvm::operator>= ( StringRef  LHS,
StringRef  RHS 
)
inline

Definition at line 550 of file StringRef.h.

References llvm::StringRef::compare().

SmallBitVector llvm::operator^ ( const SmallBitVector &  LHS,
const SmallBitVector &  RHS 
)
inline

Definition at line 593 of file SmallBitVector.h.

static RemapFlags llvm::operator| ( RemapFlags  LHS,
RemapFlags  RHS 
)
inlinestatic

Definition at line 65 of file ValueMapper.h.

SmallBitVector llvm::operator| ( const SmallBitVector &  LHS,
const SmallBitVector &  RHS 
)
inline

Definition at line 586 of file SmallBitVector.h.

template<unsigned ElementSize>
SparseBitVector<ElementSize> llvm::operator| ( const SparseBitVector< ElementSize > &  LHS,
const SparseBitVector< ElementSize > &  RHS 
)
inline

Definition at line 853 of file SparseBitVector.h.

template<unsigned ElementSize>
bool llvm::operator|= ( SparseBitVector< ElementSize > &  LHS,
const SparseBitVector< ElementSize > *  RHS 
)
inline

Definition at line 826 of file SparseBitVector.h.

template<unsigned ElementSize>
bool llvm::operator|= ( SparseBitVector< ElementSize > *  LHS,
const SparseBitVector< ElementSize > &  RHS 
)
inline

Definition at line 832 of file SparseBitVector.h.

bool llvm::optimizeGlobalCtorsList ( Module &  M,
function_ref< bool(Function *)>  ShouldRemove 
)

Call "ShouldRemove" for every entry in M's global_ctor list and remove the entries for which it returns true. Return true if anything changed.

Definition at line 119 of file CtorUtils.cpp.

References dbgs(), DEBUG, llvm::Function::empty(), F(), and llvm::BitVector::set().

raw_ostream & llvm::outs ( )
bool llvm::overlap ( const LiveInterval::Segment &  VRSeg,
const IntervalMap< SlotIndex, LiveInterval * >::const_iterator &  LUSeg 
)
inline
std::unique_ptr< Module > llvm::parseAssembly ( MemoryBufferRef  F,
SMDiagnostic Err,
LLVMContext Context 
)

Parse LLVM Assembly from a MemoryBuffer.

parseAssemblyFile and parseAssemblyString are wrappers around this function.

Parameters
FThe MemoryBuffer containing assembly
ErrError result info.
ContextContext in which to allocate globals info.

Definition at line 32 of file Parser.cpp.

References llvm::MemoryBufferRef::getBufferIdentifier(), and parseAssemblyInto().

Referenced by getLazyIRModule(), parseAssemblyFile(), parseAssemblyString(), and parseIR().

std::unique_ptr< Module > llvm::parseAssemblyFile ( StringRef  Filename,
SMDiagnostic Error,
LLVMContext Context 
)

Parse LLVM Assembly from a file.

This function is the main interface to the LLVM Assembly Parser. It parses an ASCII file that (presumably) contains LLVM Assembly code. It returns a Module (intermediate representation) with the corresponding features. Note that this does not verify that the generated Module is valid, so you should run the verifier after parsing the file to check that it is okay.

Parameters
FilenameThe name of the file to parse
ErrorError result info.
ContextContext in which to allocate globals info.

Definition at line 44 of file Parser.cpp.

References llvm::SourceMgr::DK_Error, llvm::ErrorOr< T >::get(), llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFileOrSTDIN(), and parseAssembly().

bool llvm::parseAssemblyInto ( MemoryBufferRef  F,
Module M,
SMDiagnostic Err 
)

This function is the low-level interface to the LLVM Assembly Parser. This is kept as an independent function instead of being inlined into parseAssembly for the convenience of interactive users that want to add recently parsed bits to an existing module.

Parameters
FThe MemoryBuffer containing assembly
MThe module to add data to.
ErrError result info.
Returns
true on error.

Definition at line 24 of file Parser.cpp.

References llvm::SourceMgr::AddNewSourceBuffer(), llvm::MemoryBufferRef::getBuffer(), and llvm::MemoryBuffer::getMemBuffer().

Referenced by parseAssembly().

std::unique_ptr< Module > llvm::parseAssemblyString ( StringRef  AsmString,
SMDiagnostic Error,
LLVMContext Context 
)

Parse LLVM Assembly from a string.

The function is a secondary interface to the LLVM Assembly Parser. It parses an ASCII string that (presumably) contains LLVM Assembly code. It returns a Module (intermediate representation) with the corresponding features. Note that this does not verify that the generated Module is valid, so you should run the verifier after parsing the file to check that it is okay.

Parameters
AsmStringThe string containing assembly
ErrorError result info.
ContextContext in which to allocate globals info.

Definition at line 58 of file Parser.cpp.

References F(), and parseAssembly().

ErrorOr< Module * > llvm::parseBitcodeFile ( MemoryBufferRef  Buffer,
LLVMContext Context,
DiagnosticHandlerFunction  DiagnosticHandler = nullptr 
)
std::unique_ptr< Module > llvm::parseIR ( MemoryBufferRef  Buffer,
SMDiagnostic Err,
LLVMContext Context 
)
std::unique_ptr< Module > llvm::parseIRFile ( StringRef  Filename,
SMDiagnostic Err,
LLVMContext Context 
)

If the given file holds a bitcode image, return a Module for it. Otherwise, attempt to parse it as LLVM Assembly and return a Module for it.

Definition at line 82 of file IRReader.cpp.

References llvm::SourceMgr::DK_Error, llvm::ErrorOr< T >::get(), llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFileOrSTDIN(), and parseIR().

template<class T >
po_iterator<T> llvm::po_begin ( T  G)
template<class T >
po_iterator<T> llvm::po_end ( T  G)
template<class T , class SetType >
po_ext_iterator<T, SetType> llvm::po_ext_begin ( T  G,
SetType &  S 
)
template<class T , class SetType >
po_ext_iterator<T, SetType> llvm::po_ext_end ( T  G,
SetType &  S 
)
bool llvm::PointerMayBeCaptured ( const Value V,
bool  ReturnCaptures,
bool  StoreCaptures 
)

PointerMayBeCaptured - Return true if this pointer value may be captured by the enclosing function (which is required to exist). This routine can be expensive, so consider caching the results. The boolean ReturnCaptures specifies whether returning the value (or part of it) from the function counts as capturing it or not. The boolean StoreCaptures specified whether storing the value (or part of it) into memory anywhere automatically counts as capturing it or not.

Definition at line 122 of file CaptureTracking.cpp.

References assert().

Referenced by isNonEscapingLocalObject(), and PointerMayBeCapturedBefore().

void llvm::PointerMayBeCaptured ( const Value V,
CaptureTracker Tracker 
)
bool llvm::PointerMayBeCapturedBefore ( const Value V,
bool  ReturnCaptures,
bool  StoreCaptures,
const Instruction I,
DominatorTree DT,
bool  IncludeI = false 
)

PointerMayBeCapturedBefore - Return true if this pointer value may be captured by the enclosing function (which is required to exist). If a DominatorTree is provided, only captures which happen before the given instruction are considered. This routine can be expensive, so consider caching the results. The boolean ReturnCaptures specifies whether returning the value (or part of it) from the function counts as capturing it or not. The boolean StoreCaptures specified whether storing the value (or part of it) into memory anywhere automatically counts as capturing it or not. Captures by the provided instruction are considered if the final parameter is true.

PointerMayBeCapturedBefore - Return true if this pointer value may be captured by the enclosing function (which is required to exist). If a DominatorTree is provided, only captures which happen before the given instruction are considered. This routine can be expensive, so consider caching the results. The boolean ReturnCaptures specifies whether returning the value (or part of it) from the function counts as capturing it or not. The boolean StoreCaptures specified whether storing the value (or part of it) into memory anywhere automatically counts as capturing it or not.

Definition at line 147 of file CaptureTracking.cpp.

References assert(), and PointerMayBeCaptured().

Referenced by AddAliasScopeMetadata(), and llvm::AliasAnalysis::callCapturesBefore().

uint64_t llvm::PowerOf2Floor ( uint64_t  A)
inline

Returns the power of two which is less than or equal to the given value. Essentially, it is a floor operation across the domain of powers of two.

Definition at line 585 of file MathExtras.h.

References countLeadingZeros(), and ZB_Undefined.

pred_iterator llvm::pred_begin ( BasicBlock *  BB)
inline

Definition at line 88 of file IR/CFG.h.

const_pred_iterator llvm::pred_begin ( const BasicBlock *  BB)
inline

Definition at line 89 of file IR/CFG.h.

Interval::pred_iterator llvm::pred_begin ( Interval *  I)
inline

pred_begin/pred_end - define methods so that Intervals may be used just like BasicBlocks can with the pred_* functions, and *pred_iterator.

Definition at line 114 of file Interval.h.

References llvm::Interval::Predecessors.

Referenced by addBlockAndPredsToSet(), buildExtractionBlockSet(), CanPropagatePredecessorsForPHIs(), llvm::GraphTraits< Inverse< Interval * > >::child_begin(), llvm::GraphTraits< Inverse< BasicBlock * > >::child_begin(), llvm::GraphTraits< Inverse< const BasicBlock * > >::child_begin(), CloneAndPruneFunctionInto(), ComputePostOrders(), ConnectProlog(), DeleteDeadBlock(), llvm::DominatorTree::dominates(), llvm::SSAUpdaterTraits< SSAUpdater >::FindPredecessorBlocks(), FindUnconditionalPreds(), FoldBranchToCommonDest(), FoldTwoEntryPHINode(), GetBestDestForJumpOnUndef(), llvm::Loop::getCanonicalInductionVariable(), GetIfCondition(), llvm::PredIteratorCache::GetPreds(), llvm::BasicBlock::getSinglePredecessor(), llvm::Loop::getUniqueExitBlocks(), llvm::BasicBlock::getUniquePredecessor(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), llvm::Loop::hasDedicatedExits(), InlineFunction(), InsertPreheaderForLoop(), insertUniqueBackedgeBlock(), isCriticalEdge(), llvm::Interval::isLoop(), IsValueFullyAvailableInBlock(), MarkBlocksLiveIn(), mergeEmptyReturnBlocks(), pred_empty(), llvm::AssemblyWriter::printBasicBlock(), llvm::BasicBlock::removePredecessor(), reuseTableCompare(), rewriteLoopExitBlock(), separateNestedLoop(), SimplifyCondBranchToCondBranch(), simplifyOneLoop(), SinkThenElseCodeToEnd(), SplitCriticalEdge(), SplitLandingPadPredecessors(), and TryToSimplifyUncondBranchFromEmptyBlock().

bool llvm::pred_empty ( const BasicBlock *  BB)
inline

Definition at line 96 of file IR/CFG.h.

References pred_begin(), and pred_end().

pred_iterator llvm::pred_end ( BasicBlock *  BB)
inline

Definition at line 92 of file IR/CFG.h.

const_pred_iterator llvm::pred_end ( const BasicBlock *  BB)
inline

Definition at line 93 of file IR/CFG.h.

Interval::pred_iterator llvm::pred_end ( Interval *  I)
inline
bool llvm::PredicatesFoldable ( CmpInst::Predicate  p1,
CmpInst::Predicate  p2 
)

PredicatesFoldable - Return true if both predicates match sign or if at least one of them is an equality comparison (which is signless).

Definition at line 92 of file CmpInstAnalysis.cpp.

References llvm::ICmpInst::isEquality(), and llvm::CmpInst::isSigned().

Referenced by llvm::InstCombiner::FoldAndOfICmps(), llvm::InstCombiner::FoldOrOfICmps(), and llvm::InstCombiner::visitXor().

static void llvm::PrintDLLStorageClass ( GlobalValue::DLLStorageClassTypes  SCT,
formatted_raw_ostream Out 
)
static
template<class NodeT >
void llvm::PrintDomTree ( const DomTreeNodeBase< NodeT > *  N,
raw_ostream &  o,
unsigned  Lev 
)

Definition at line 166 of file GenericDomTree.h.

References I, llvm::raw_ostream::indent(), and N.

void llvm::PrintError ( ArrayRef< SMLoc >  ErrorLoc,
const Twine &  Msg 
)

Definition at line 53 of file TableGen/Error.cpp.

References llvm::SourceMgr::DK_Error, and PrintMessage().

Referenced by llvm::TGParser::Error(), and PrintFatalError().

void llvm::PrintError ( const char *  Loc,
const Twine &  Msg 
)
void llvm::PrintError ( const Twine &  Msg)

Definition at line 61 of file TableGen/Error.cpp.

References errs().

void llvm::PrintFatalError ( const Twine &  Msg)
void llvm::PrintFatalError ( ArrayRef< SMLoc >  ErrorLoc,
const Twine &  Msg 
)

Definition at line 70 of file TableGen/Error.cpp.

References PrintError().

static void llvm::PrintLinkage ( GlobalValue::LinkageTypes  LT,
formatted_raw_ostream Out 
)
static
static void llvm::PrintMessage ( ArrayRef< SMLoc >  Loc,
SourceMgr::DiagKind  Kind,
const Twine &  Msg 
)
static
void llvm::PrintRecyclerStats ( size_t  Size,
size_t  Align,
size_t  FreeListSize 
)

PrintRecyclingAllocatorStats - Helper for RecyclingAllocator for printing statistics.

Definition at line 37 of file Allocator.cpp.

References errs().

Referenced by llvm::Recycler< llvm::MachineInstr >::PrintStats().

void llvm::PrintStatistics ( )

Print statistics to the file returned by CreateInfoOutputFile().

Definition at line 139 of file Statistic.cpp.

References CreateInfoOutputFile(), Enabled, llvm::raw_ostream::flush(), StatInfo, and Stats.

void llvm::PrintStatistics ( raw_ostream OS)
static void llvm::PrintThreadLocalModel ( GlobalVariable::ThreadLocalMode  TLM,
formatted_raw_ostream Out 
)
static
static void llvm::PrintVisibility ( GlobalValue::VisibilityTypes  Vis,
formatted_raw_ostream Out 
)
static
void llvm::PrintWarning ( ArrayRef< SMLoc >  WarningLoc,
const Twine &  Msg 
)

Definition at line 41 of file TableGen/Error.cpp.

References llvm::SourceMgr::DK_Warning, and PrintMessage().

void llvm::PrintWarning ( const char *  Loc,
const Twine &  Msg 
)
void llvm::PrintWarning ( const Twine &  Msg)

Definition at line 49 of file TableGen/Error.cpp.

References errs().

void llvm::PromoteMemToReg ( ArrayRef< AllocaInst * >  Allocas,
DominatorTree DT,
AliasSetTracker AST = nullptr,
AssumptionCache AC = nullptr 
)

Promote the specified list of alloca instructions into scalar registers, inserting PHI nodes as appropriate.

This function makes use of DominanceFrontier information. This function does not modify the CFG of the function at all. All allocas must be from the same function.

If AST is specified, the specified tracker is updated to reflect changes made to the IR.

Definition at line 1073 of file PromoteMemoryToRegister.cpp.

References llvm::ArrayRef< T >::empty().

GenericValue llvm::PTOGV ( void *  P)
inline
Init * llvm::QualifyName ( Record CurRec,
MultiClass CurMultiClass,
Init Name,
const std::string &  Scoper 
)

QualifyName - Return an Init with a qualifier prefix referring to CurRec's name.

Definition at line 2041 of file Record.cpp.

References dyn_cast(), llvm::BinOpInit::Fold(), llvm::StringInit::get(), llvm::BinOpInit::get(), llvm::Record::getNameInit(), llvm::Intrinsic::getType(), Name, llvm::MultiClass::Rec, llvm::BinOpInit::STRCONCAT, and Type.

Referenced by llvm::UnOpInit::Fold(), and QualifyName().

Init * llvm::QualifyName ( Record CurRec,
MultiClass CurMultiClass,
const std::string &  Name,
const std::string &  Scoper 
)

QualifyName - Return an Init with a qualifier prefix referring to CurRec's name.

Definition at line 2070 of file Record.cpp.

References llvm::StringInit::get(), and QualifyName().

bool llvm::RecursivelyDeleteDeadPHINode ( PHINode PN,
const TargetLibraryInfo TLI = nullptr 
)

RecursivelyDeleteDeadPHINode - If the specified value is an effectively dead PHI node, due to being a def-use chain of single-use nodes that either forms a cycle or is terminated by a trivially dead instruction, delete it. If that makes any of its operands trivially dead, delete them too, recursively. Return true if a change was made.

Definition at line 388 of file Local.cpp.

References areAllUsesEqual(), llvm::UndefValue::get(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), and RecursivelyDeleteTriviallyDeadInstructions().

Referenced by DeleteDeadPHIs().

bool llvm::RecursivelyDeleteTriviallyDeadInstructions ( Value V,
const TargetLibraryInfo TLI = nullptr 
)

RecursivelyDeleteTriviallyDeadInstructions - If the specified value is a trivially dead instruction, delete it. If that makes any of its operands trivially dead, delete them too, recursively. Return true if any instructions were deleted.

Definition at line 331 of file Local.cpp.

References dyn_cast(), llvm::SmallVectorBase::empty(), llvm::Instruction::eraseFromParent(), llvm::User::getNumOperands(), llvm::User::getOperand(), I, isInstructionTriviallyDead(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::User::setOperand(), and llvm::Value::use_empty().

Referenced by ConstantFoldTerminator(), llvm::objcarc::EraseInstruction(), EraseTerminatorInstAndDCECond(), RecursivelyDeleteDeadPHINode(), SimplifyInstructionsInBlock(), and UnrollLoop().

bool llvm::recursivelySimplifyInstruction ( Instruction I,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr 
)

Recursively attempt to simplify an instruction.

This routine uses SimplifyInstruction to simplify 'I', and if successful replaces uses of 'I' with the simplified value. It then recurses on each of the users impacted. It returns true if any simplifications were performed.

Definition at line 3766 of file InstructionSimplify.cpp.

References replaceAndRecursivelySimplifyImpl().

Referenced by CloneAndPruneFunctionInto(), RemovePredecessorAndSimplify(), and SimplifyInstructionsInBlock().

llvm::RegionGraphTraits ( MachineRegion  ,
MachineRegionNode   
)
llvm::RegionGraphTraits ( Region  ,
RegionNode   
)
llvm::RegionNodeGraphTraits ( MachineRegionNode  ,
MachineBasicBlock  ,
MachineRegion   
)
llvm::RegionNodeGraphTraits ( RegionNode  ,
BasicBlock  ,
Region   
)
void llvm::RemapInstruction ( Instruction I,
ValueToValueMapTy VMap,
RemapFlags  Flags = RF_None,
ValueMapTypeRemapper TypeMapper = nullptr,
ValueMaterializer Materializer = nullptr 
)
void llvm::remove_fatal_error_handler ( )

Restores default error handling behaviour.

Definition at line 55 of file ErrorHandling.cpp.

References ErrorHandler, ErrorHandlerMutex, ErrorHandlerUserData, and Lock.

Referenced by LLVMResetFatalErrorHandler(), and llvm::ScopedFatalErrorHandler::~ScopedFatalErrorHandler().

template<typename T >
void llvm::RemoveFromVector ( std::vector< T * > &  V,
T N 
)
inline

Definition at line 46 of file LoopInfo.h.

References assert(), I, and N.

Referenced by llvm::LoopBase< BasicBlock, Loop >::removeBlockFromLoop().

void llvm::RemovePredecessorAndSimplify ( BasicBlock BB,
BasicBlock Pred,
DataLayout TD = nullptr 
)

RemovePredecessorAndSimplify - Like BasicBlock::removePredecessor, this method is called when we're about to delete Pred as a predecessor of BB. If BB contains any PHI nodes, this drops the entries in the PHI nodes for Pred.

Unlike the removePredecessor method, this attempts to simplify uses of PHI nodes that collapse into identity values. For example, if we have: x = phi(1, 0, 0, 0) y = and x, z

.. and delete the predecessor corresponding to the '1', this will attempt to recursively fold the 'and' to 0.

RemovePredecessorAndSimplify - Like BasicBlock::removePredecessor, this method is called when we're about to delete Pred as a predecessor of BB. If BB contains any PHI nodes, this drops the entries in the PHI nodes for Pred.

Unlike the removePredecessor method, this attempts to simplify uses of PHI nodes that collapse into identity values. For example, if we have: x = phi(1, 0, 0, 0) y = and x, z

.. and delete the predecessor corresponding to the '1', this will attempt to recursively fold the and to 0.

Definition at line 460 of file Local.cpp.

References llvm::BasicBlock::begin(), llvm::BasicBlock::front(), recursivelySimplifyInstruction(), and llvm::BasicBlock::removePredecessor().

bool llvm::removeUnreachableBlocks ( Function F)

Remove all blocks that can not be reached from the function's entry.

Returns true if any basic block was removed.

removeUnreachableBlocksFromFn - Remove blocks that are not reachable, even if they are in a dead cycle. Return true if a change was made, false otherwise.

Definition at line 1280 of file Local.cpp.

References assert(), llvm::Function::begin(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::Function::end(), llvm::iplist< NodeTy, Traits >::erase(), llvm::Function::getBasicBlockList(), I, markAliveBlocks(), SI, llvm::SmallPtrSetImplBase::size(), llvm::Function::size(), succ_begin(), and succ_end().

bool llvm::replaceAndRecursivelySimplify ( Instruction I,
Value SimpleV,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr 
)

Replace all uses of 'I' with 'SimpleV' and simplify the uses recursively.

This first performs a normal RAUW of I with SimpleV. It then recursively attempts to simplify those users updated by the operation. The 'I' instruction must not be equal to the simplified value 'SimpleV'.

The function returns true if any simplifications were performed.

Definition at line 3773 of file InstructionSimplify.cpp.

References assert(), and replaceAndRecursivelySimplifyImpl().

bool llvm::replaceDbgDeclareForAlloca ( AllocaInst AI,
Value NewAllocaAddress,
DIBuilder Builder 
)
void llvm::ReplaceInstWithInst ( BasicBlock::InstListType BIL,
BasicBlock::iterator BI,
Instruction I 
)

ReplaceInstWithInst - Replace the instruction specified by BI with the instruction specified by I. The original instruction is deleted and BI is updated to point to the new instruction.

Definition at line 218 of file BasicBlockUtils.cpp.

References assert(), llvm::Instruction::getParent(), llvm::iplist< NodeTy, Traits >::insert(), and ReplaceInstWithValue().

Referenced by ReplaceInstWithInst(), SplitBlockAndInsertIfThen(), and SplitBlockAndInsertIfThenElse().

void llvm::ReplaceInstWithInst ( Instruction From,
Instruction To 
)

ReplaceInstWithInst - Replace the instruction specified by From with the instruction specified by To.

Definition at line 236 of file BasicBlockUtils.cpp.

References llvm::BasicBlock::getInstList(), llvm::Instruction::getParent(), and ReplaceInstWithInst().

void llvm::ReplaceInstWithValue ( BasicBlock::InstListType BIL,
BasicBlock::iterator BI,
Value V 
)

ReplaceInstWithValue - Replace all uses of an instruction (specified by BI) with a value, then remove and delete the original instruction.

Definition at line 199 of file BasicBlockUtils.cpp.

References llvm::iplist< NodeTy, Traits >::erase(), llvm::Value::hasName(), I, llvm::Value::replaceAllUsesWith(), and llvm::Value::takeName().

Referenced by ReplaceInstWithInst().

void llvm::report_fatal_error ( const char *  reason,
bool  gen_crash_diag = true 
)

Reports a serious error, calling any installed error handler. These functions are intended to be used for error conditions which are outside the control of the compiler (I/O errors, invalid user input, etc.)

If no error handler is installed the default is to print the message to standard error, followed by a newline. After the error handler is called this function will call exit(1), it does not return.

Definition at line 61 of file ErrorHandling.cpp.

Referenced by llvm::MCJIT::addObjectFile(), llvm::TargetPassConfig::addPass(), adjustFixupValue(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::RegAllocBase::allocatePhysRegs(), applyOverride(), llvm::ARMTargetMachine::ARMTargetMachine(), llvm::yaml::Stream::begin(), llvm::MachObjectWriter::BindIndirectSymbols(), llvm::Interpreter::callExternalFunction(), llvm::MCELFStreamer::ChangeSection(), llvm::MCObjectStreamer::ChangeSection(), check(), checkInterfaceFunction(), checkMachOComdat(), llvm::MCAssembler::computeFragmentSize(), llvm::TargetSchedModel::computeOperandLatency(), llvm::NVPTXInstrInfo::copyPhysReg(), createAArch64MCCodeGenInfo(), llvm::SpecialCaseList::createOrDie(), createXCoreMCCodeGenInfo(), llvm::object::ELFFile< ELFT >::ELFFile(), llvm::MCELFStreamer::EmitBundleAlignMode(), llvm::MCELFStreamer::EmitBundleLock(), llvm::MCELFStreamer::EmitBundleUnlock(), llvm::MCStreamer::EmitCFIStartProc(), llvm::MCWinCOFFStreamer::EmitCommonSymbol(), llvm::RuntimeDyldImpl::emitCommonSymbols(), llvm::MipsTargetStreamer::emitDirectiveModuleOddSPReg(), llvm::MachineInstr::emitError(), llvm::AsmPrinter::EmitFunctionEntryLabel(), EmitGCCInlineAsmStr(), llvm::ExecutionEngine::emitGlobals(), llvm::AsmPrinter::EmitGlobalVariable(), llvm::MCStreamer::EmitGPRel32Value(), llvm::MCStreamer::EmitGPRel64Value(), llvm::TargetLoweringObjectFileMachO::emitModuleFlags(), EmitMSInlineAsmStr(), llvm::MCJIT::emitObject(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::RuntimeDyldImpl::emitSection(), llvm::MCELFStreamer::EmitValueImpl(), llvm::MCELFStreamer::EmitValueToAlignment(), llvm::MCObjectStreamer::EmitWeakReference(), llvm::MCStreamer::EmitWinCFIAllocStack(), llvm::MCStreamer::EmitWinCFIEndChained(), llvm::MCStreamer::EmitWinCFIEndProc(), llvm::MCStreamer::EmitWinCFIPushFrame(), llvm::MCStreamer::EmitWinCFISaveReg(), llvm::MCStreamer::EmitWinCFISaveXMM(), llvm::MCStreamer::EmitWinCFISetFrame(), llvm::MCStreamer::EmitWinCFIStartProc(), llvm::MCStreamer::EmitWinEHHandler(), llvm::MCStreamer::EmitWinEHHandlerData(), llvm::CodeExtractor::extractCodeRegion(), llvm::MCContext::FatalError(), llvm::RuntimeDyldELF::finalizeLoad(), llvm::MCStreamer::Finish(), foldPatchpoint(), llvm::MCJIT::generateCodeForModule(), llvm::object::ELFObjectFile< ELFT >::getArch(), llvm::TargetLoweringObjectFileELF::getCFIPersonalitySymbol(), getComdatGVForCOFF(), llvm::ExecutionEngine::getConstantValue(), llvm::GCOVOptions::getDefault(), getELFComdat(), llvm::XCoreTargetObjectFile::getExplicitSectionGlobal(), llvm::TargetLoweringObjectFileMachO::getExplicitSectionGlobal(), llvm::object::ELFObjectFile< ELFT >::getFileFormatName(), getFixupKindLog2Size(), getInt(), getLabelOffset(), GetOptionInfo(), llvm::RTDyldMemoryManager::getPointerToNamedFunction(), llvm::MCJIT::getPointerToNamedFunction(), llvm::MipsTargetLowering::getRegisterByName(), llvm::PPCTargetLowering::getRegisterByName(), llvm::X86TargetLowering::getRegisterByName(), llvm::TargetLowering::getRegisterByName(), llvm::object::ELFObjectFile< ELFT >::getRelocationAddend(), llvm::object::COFFObjectFile::getRelocationAddress(), llvm::object::ELFObjectFile< ELFT >::getRelocationSymbol(), llvm::object::ELFObjectFile< ELFT >::getRelocationType(), llvm::object::MachOObjectFile::getRelocationValueString(), getRelocType(), llvm::X86RegisterInfo::getReservedRegs(), llvm::object::ELFObjectFile< ELFT >::getROffset(), GetScratchRegister(), llvm::object::ELFFile< ELFT >::getSection(), llvm::object::ELFFile< ELFT >::getString(), llvm::MachObjectWriter::getSymbolAddress(), llvm::object::COFFObjectFile::getSymbolAuxData(), getSymbolOffsetImpl(), llvm::TargetLoweringObjectFile::getTTypeReference(), inBytes(), llvm::MCAsmLayout::layoutFragment(), LLVMGetRelocationAddress(), LLVMGetRelocationOffset(), LLVMGetRelocationType(), LLVMGetRelocationTypeName(), LLVMGetRelocationValueString(), LLVMGetSectionContents(), LLVMGetSectionName(), LLVMGetSymbolAddress(), LLVMGetSymbolName(), LLVMGetSymbolSize(), LLVMMoveToContainingSection(), LLVMVerifyFunction(), LLVMVerifyModule(), llvm::RuntimeDyld::loadObject(), llvm::ExecutionEngine::LoadValueFromMemory(), llvm::AsmPrinter::lowerConstant(), llvm::SparcTargetLowering::LowerFormalArguments_32(), LowerInterruptReturn(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::MipsSubtarget::MipsSubtarget(), llvm::DWARFDebugFrame::parse(), llvm::SymbolRewriter::RewriteMapParser::parse(), llvm::TargetLowering::ParseConstraints(), llvm::FrameEntry::parseInstructions(), llvm::SymbolRewriter::PatternRewriteDescriptor< DT, ValueType, Get, Iterator >::performOnModule(), llvm::sys::fs::recursive_directory_iterator::pop(), llvm::NVPTXInstPrinter::printRegName(), printRelocationTargetName(), llvm::AsmPrinter::PrintSpecial(), report_fatal_error(), llvm::RuntimeDyldImpl::resolveExternalSymbols(), llvm::VerifierPass::run(), llvm::legacy::FunctionPassManager::run(), llvm::ExecutionEngine::runFunctionAsMain(), llvm::LiveVariables::runOnMachineFunction(), llvm::SelectionDAGISel::SelectInlineAsmMemoryOperands(), llvm::XCoreTargetObjectFile::SelectSectionForGlobal(), llvm::MCSectionData::setBundleLockState(), split(), llvm::object::ELFFile< ELFT >::VerifyStrTab(), llvm::Interpreter::visitUnreachableInst(), writeFragment(), llvm::MachObjectWriter::WriteNlist(), llvm::MCAssembler::writeSectionData(), and llvm::raw_fd_ostream::~raw_fd_ostream().

void llvm::report_fatal_error ( const std::string &  reason,
bool  gen_crash_diag = true 
)

Definition at line 65 of file ErrorHandling.cpp.

References report_fatal_error().

void llvm::report_fatal_error ( StringRef  reason,
bool  gen_crash_diag = true 
)

Definition at line 69 of file ErrorHandling.cpp.

References report_fatal_error().

void llvm::report_fatal_error ( const Twine reason,
bool  gen_crash_diag = true 
)
RecTy * llvm::resolveTypes ( RecTy T1,
RecTy T2 
)

resolveTypes - Find a common type that T1 and T2 convert to. Return 0 if no such type exists.

Definition at line 390 of file Record.cpp.

References llvm::RecordRecTy::get(), and llvm::RecTy::typeIsConvertibleTo().

static bool llvm::RetCC_ARM_AAPCS_Custom_f64 ( unsigned ValNo,
MVT &  ValVT,
MVT &  LocVT,
CCValAssign::LocInfo &  LocInfo,
ISD::ArgFlagsTy &  ArgFlags,
CCState &  State 
)
static

Definition at line 155 of file ARMCallingConv.h.

References RetCC_ARM_APCS_Custom_f64().

static bool llvm::RetCC_ARM_APCS_Custom_f64 ( unsigned ValNo,
MVT &  ValVT,
MVT &  LocVT,
CCValAssign::LocInfo &  LocInfo,
ISD::ArgFlagsTy &  ArgFlags,
CCState &  State 
)
static

Definition at line 144 of file ARMCallingConv.h.

References f64RetAssign(), and llvm::MVT::v2f64.

Referenced by RetCC_ARM_AAPCS_Custom_f64().

bool llvm::returnTypeIsEligibleForTailCall ( const Function F,
const Instruction I,
const ReturnInst Ret,
const TargetLoweringBase TLI 
)
template<typename T >
T llvm::reverseBits ( T  Val)

Reverse the bits in Val.

Definition at line 239 of file MathExtras.h.

References BitReverseTable256, and llvm::Intrinsic::memcpy.

bool llvm::rewriteAArch64FrameIndex ( MachineInstr MI,
unsigned  FrameRegIdx,
unsigned  FrameReg,
int &  Offset,
const AArch64InstrInfo TII 
)
bool llvm::rewriteARMFrameIndex ( MachineInstr MI,
unsigned  FrameRegIdx,
unsigned  FrameReg,
int &  Offset,
const ARMBaseInstrInfo TII 
)
bool llvm::rewriteT2FrameIndex ( MachineInstr MI,
unsigned  FrameRegIdx,
unsigned  FrameReg,
int &  Offset,
const ARMBaseInstrInfo TII 
)
FormattedString llvm::right_justify ( StringRef  Str,
unsigned  Width 
)
inline

right_justify - add spaces before string so total output is Width characters. If Str is larger that Width, full string is written with no padding.

Definition at line 251 of file Format.h.

static size_t llvm::RoundUpTo ( size_t  X,
size_t  RoundTo 
)
static

Definition at line 36 of file ASanStackFrameLayout.cpp.

References assert().

Referenced by VarAndRedzoneSize().

uint64_t llvm::RoundUpToAlignment ( uint64_t  Value,
uint64_t  Align 
)
inline
const std::error_category & llvm::sampleprof_category ( )

Definition at line 49 of file SampleProf.cpp.

References ErrorCategory.

Referenced by make_error_code().

APFloat llvm::scalbn ( APFloat  X,
int  Exp 
)
template<class T >
scc_iterator<T> llvm::scc_begin ( const T G)

Construct the begin iterator for a deduced graph type T.

Definition at line 224 of file SCCIterator.h.

References llvm::scc_iterator< GraphT, GT >::begin().

Referenced by llvm::BlockFrequencyInfoImplBase::analyzeIrreducible().

template<class T >
scc_iterator<Inverse<T> > llvm::scc_begin ( const Inverse< T > &  G)

Construct the begin iterator for a deduced graph type T's Inverse<T>.

Definition at line 234 of file SCCIterator.h.

References llvm::sys::path::begin().

template<class T >
scc_iterator<T> llvm::scc_end ( const T G)

Construct the end iterator for a deduced graph type T.

Definition at line 229 of file SCCIterator.h.

References llvm::scc_iterator< GraphT, GT >::end().

template<class T >
scc_iterator<Inverse<T> > llvm::scc_end ( const Inverse< T > &  G)

Construct the end iterator for a deduced graph type T's Inverse<T>.

Definition at line 239 of file SCCIterator.h.

References llvm::sys::path::end().

void * llvm::SearchForAddressOfSpecialSymbol ( const char *  symbolName)
template<class S1Ty , class S2Ty >
S1Ty llvm::set_difference ( const S1Ty &  S1,
const S2Ty &  S2 
)

set_difference(A, B) - Return A - B

Definition at line 51 of file SetOperations.h.

References SI.

void llvm::set_fixed_execution_hash_seed ( size_t  fixed_value)

Override the execution seed with a fixed value.

This hashing library uses a per-execution seed designed to change on each run with high probability in order to ensure that the hash codes are not attackable and to ensure that output which is intended to be stable does not rely on the particulars of the hash codes produced.

That said, there are use cases where it is important to be able to reproduce exactly a specific behavior. To that end, we provide a function which will forcibly set the seed to a fixed value. This must be done at the start of the program, before any hashes are computed. Also, it cannot be undone. This makes it thread-hostile and very hard to use outside of immediately on start of a simple program designed for reproducible behavior.

Definition at line 27 of file Hashing.cpp.

References llvm::hashing::detail::fixed_seed_override.

template<class S1Ty , class S2Ty >
void llvm::set_intersect ( S1Ty &  S1,
const S2Ty &  S2 
)

set_intersect(A, B) - Compute A := A ^ B Identical to set_intersection, except that it works on set<>'s and is nicer to use. Functionally, this iterates through S1, removing elements that are not contained in S2.

Definition at line 40 of file SetOperations.h.

References I.

template<class S1Ty , class S2Ty >
void llvm::set_subtract ( S1Ty &  S1,
const S2Ty &  S2 
)

set_subtract(A, B) - Compute A := A - B

Definition at line 63 of file SetOperations.h.

References SI.

template<class S1Ty , class S2Ty >
bool llvm::set_union ( S1Ty &  S1,
const S2Ty &  S2 
)

set_union(A, B) - Compute A := A u B, return whether A changed.

Definition at line 23 of file SetOperations.h.

References SI.

void llvm::setCurrentDebugType ( const char *  Type)

setCurrentDebugType - Set the current debug type, as if the -debug-only=X option were specified. Note that DebugFlag also needs to be set to true for debug output to be produced.

Definition at line 107 of file Debug.cpp.

References CurrentDebugType.

void llvm::setPreserveAssemblyUseListOrder ( bool  ShouldPreserve)

Definition at line 41 of file UseListOrder.cpp.

References PreserveAssemblyUseListOrder.

void llvm::setPreserveBitcodeUseListOrder ( bool  ShouldPreserve)

Definition at line 37 of file UseListOrder.cpp.

References PreserveBitcodeUseListOrder.

bool llvm::shouldPreserveAssemblyUseListOrder ( )

Definition at line 33 of file UseListOrder.cpp.

References PreserveAssemblyUseListOrder.

Referenced by llvm::AssemblyWriter::printModule().

bool llvm::shouldPreserveBitcodeUseListOrder ( )

Whether to preserve use-list ordering.

Definition at line 29 of file UseListOrder.cpp.

References PreserveBitcodeUseListOrder.

Referenced by llvm::ValueEnumerator::ValueEnumerator(), WriteFunction(), and WriteModule().

template<unsigned B>
int32_t llvm::SignExtend32 ( uint32_t  x)
inline

SignExtend32 - Sign extend B-bit number x to 32-bit int. Usage int32_t r = SignExtend32<5>(x);

Definition at line 620 of file MathExtras.h.

Referenced by llvm::PPC::get_VSPLTI_elt().

int32_t llvm::SignExtend32 ( uint32_t  X,
unsigned  B 
)
inline

Sign extend number in the bottom B bits of X to a 32-bit int. Requires 0 < B <= 32.

Definition at line 626 of file MathExtras.h.

template<unsigned B>
int64_t llvm::SignExtend64 ( uint64_t  x)
inline
int64_t llvm::SignExtend64 ( uint64_t  X,
unsigned  B 
)
inline

Sign extend number in the bottom B bits of X to a 64-bit int. Requires 0 < B <= 64.

Definition at line 638 of file MathExtras.h.

Value * llvm::SimplifyAddInst ( Value LHS,
Value RHS,
bool  isNSW,
bool  isNUW,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifyAddInst - Given operands for an Add, see if we can fold the result. If not, this returns null.

Definition at line 584 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyAddInst().

Referenced by SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitAdd().

Value * llvm::SimplifyAndInst ( Value LHS,
Value RHS,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifyAndInst - Given operands for an And, see if we can fold the result. If not, this returns null.

Definition at line 1630 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyAndInst().

Referenced by SimplifyBinOp(), SimplifyInstruction(), SimplifyMulInst(), ThreadCmpOverSelect(), and llvm::InstCombiner::visitAnd().

Value * llvm::SimplifyAShrInst ( Value Op0,
Value Op1,
bool  isExact,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifyAShrInst - Given operands for a AShr, see if we can fold the result. If not, this returns null.

Definition at line 1431 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyAShrInst().

Referenced by SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitAShr().

Value * llvm::SimplifyBinOp ( unsigned  Opcode,
Value LHS,
Value RHS,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifyBinOp - Given operands for a BinaryOperator, see if we can fold the result. If not, this returns null.

Definition at line 3454 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyBinOp().

Referenced by ExpandBinOp(), SimplifyAssociativeBinOp(), SimplifySubInst(), SimplifyWithOpReplaced(), ThreadBinOpOverPHI(), ThreadBinOpOverSelect(), and tryFactorization().

Value * llvm::SimplifyCall ( Value V,
User::op_iterator  ArgBegin,
User::op_iterator  ArgEnd,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

Given a function and iterators over arguments, see if we can fold the result.

If this call could not be simplified returns null.

Definition at line 3547 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyCall().

Referenced by SimplifyInstruction().

Value * llvm::SimplifyCall ( Value V,
ArrayRef< Value * >  Args,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

Given a function and set of arguments, see if we can fold the result.

If this call could not be simplified returns null.

Definition at line 3555 of file InstructionSimplify.cpp.

References llvm::ArrayRef< T >::begin(), llvm::ArrayRef< T >::end(), RecursionLimit, and SimplifyCall().

bool llvm::SimplifyCFG ( BasicBlock BB,
const TargetTransformInfo TTI,
unsigned  BonusInstThreshold,
const DataLayout DL = nullptr,
AssumptionCache AC = nullptr 
)

SimplifyCFG - This function is used to do simplification of a CFG. For example, it adjusts branches to branches to eliminate the extra hop, it eliminates unreachable basic blocks, and does other "peephole" optimization of the CFG. It returns true if a modification was made, possibly deleting the basic block that was pointed to.

SimplifyCFG - This function is used to do simplification of a CFG. For example, it adjusts branches to branches to eliminate the extra hop, it eliminates unreachable basic blocks, and does other "peephole" optimization of the CFG. It returns true if a modification was made.

Definition at line 4652 of file SimplifyCFG.cpp.

Referenced by iterativelySimplifyCFG(), and TryToSimplifyUncondBranchWithICmpInIt().

Value * llvm::SimplifyCmpInst ( unsigned  Predicate,
Value LHS,
Value RHS,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifyCmpInst - Given operands for a CmpInst, see if we can fold the result. If not, this returns null.

Definition at line 3471 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyCmpInst().

Referenced by SimplifyWithOpReplaced(), ThreadCmpOverPHI(), and ThreadCmpOverSelect().

Value * llvm::SimplifyFAddInst ( Value LHS,
Value RHS,
FastMathFlags  FMF,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

Given operands for an FAdd, see if we can fold the result. If not, this returns null.

Definition at line 962 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyFAddInst().

Referenced by SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitFAdd().

Value * llvm::SimplifyFCmpInst ( unsigned  Predicate,
Value LHS,
Value RHS,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifyFCmpInst - Given operands for an FCmpInst, see if we can fold the result. If not, this returns null.

Definition at line 3108 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyFCmpInst().

Referenced by SimplifyCmpInst(), SimplifyInstruction(), and llvm::InstCombiner::visitFCmpInst().

Value * llvm::SimplifyFDivInst ( Value LHS,
Value RHS,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifyFDivInst - Given operands for an FDiv, see if we can fold the result. If not, this returns null.

Definition at line 1132 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyFDivInst().

Referenced by SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitFDiv().

Value * llvm::SimplifyFMulInst ( Value LHS,
Value RHS,
FastMathFlags  FMF,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

Given operands for an FMul, see if we can fold the result. If not, this returns null.

Definition at line 980 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyFMulInst().

Referenced by SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitFMul().

Value * llvm::SimplifyFRemInst ( Value LHS,
Value RHS,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifyFRemInst - Given operands for an FRem, see if we can fold the result. If not, this returns null.

Definition at line 1250 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyFRemInst().

Referenced by SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitFRem().

Value * llvm::SimplifyFSubInst ( Value LHS,
Value RHS,
FastMathFlags  FMF,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

Given operands for an FSub, see if we can fold the result. If not, this returns null.

Definition at line 971 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyFSubInst().

Referenced by SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitFSub().

Value * llvm::SimplifyGEPInst ( ArrayRef< Value * >  Ops,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifyGEPInst - Given operands for an GetElementPtrInst, see if we can fold the result. If not, this returns null.

Definition at line 3294 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyGEPInst().

Referenced by SimplifyInstruction(), and llvm::InstCombiner::visitGetElementPtrInst().

Value * llvm::SimplifyICmpInst ( unsigned  Predicate,
Value LHS,
Value RHS,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
Instruction CxtI = nullptr 
)

SimplifyICmpInst - Given operands for an ICmpInst, see if we can fold the result. If not, this returns null.

Definition at line 3010 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyICmpInst().

Referenced by SimplifyCmpInst(), SimplifyICmpInst(), SimplifyInstruction(), and llvm::InstCombiner::visitICmpInst().

Value * llvm::SimplifyInsertValueInst ( Value Agg,
Value Val,
ArrayRef< unsigned Idxs,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifyInsertValueInst - Given operands for an InsertValueInst, see if we can fold the result. If not, this returns null.

Definition at line 3330 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyInsertValueInst().

Referenced by SimplifyInstruction().

Value * llvm::SimplifyInstruction ( Instruction I,
const DataLayout DL = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr 
)

SimplifyInstruction - See if we can compute a simplified version of this instruction. If not, this returns null.

If called on unreachable code, the above logic may report that the instruction simplified to itself. Make life easier for users by detecting that case here, returning a safe value instead.

Definition at line 3565 of file InstructionSimplify.cpp.

References Add, llvm::APIntOps::And(), llvm::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_begin(), llvm::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_end(), Call, ConstantFoldInstruction(), DL, llvm::UndefValue::get(), llvm::InsertValueInst::getAggregateOperand(), llvm::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getCalledValue(), llvm::Instruction::getFastMathFlags(), llvm::InsertValueInst::getIndices(), llvm::InsertValueInst::getInsertedValueOperand(), llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), I, llvm::User::op_begin(), llvm::User::op_end(), llvm::APIntOps::Or(), llvm::TargetOpcode::PHI, llvm::MCID::Select, SimplifyAddInst(), SimplifyAndInst(), SimplifyAShrInst(), SimplifyCall(), SimplifyFAddInst(), SimplifyFCmpInst(), SimplifyFDivInst(), SimplifyFMulInst(), SimplifyFRemInst(), SimplifyFSubInst(), SimplifyGEPInst(), SimplifyICmpInst(), SimplifyInsertValueInst(), SimplifyLShrInst(), SimplifyMulInst(), SimplifyOrInst(), SimplifyPHINode(), SimplifySDivInst(), SimplifySelectInst(), SimplifyShlInst(), SimplifySRemInst(), SimplifySubInst(), SimplifyTruncInst(), SimplifyUDivInst(), SimplifyURemInst(), SimplifyXorInst(), Sub, and llvm::APIntOps::Xor().

Referenced by DecomposeGEPExpression(), findPHIToPartitionLoops(), FoldCondBranchOnPHI(), FoldTwoEntryPHINode(), GetUnderlyingObject(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), InlineFunction(), replaceAndRecursivelySimplifyImpl(), llvm::SCEVExpander::replaceCongruentIVs(), simplifyOneLoop(), TryToSimplifyUncondBranchWithICmpInIt(), UnrollLoop(), and llvm::InstCombiner::visitPHINode().

bool llvm::SimplifyInstructionsInBlock ( BasicBlock BB,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr 
)

SimplifyInstructionsInBlock - Scan the specified basic block and try to simplify any instructions in it and recursively delete dead instructions.

This returns true if it changed the code, note that it can delete instructions in other blocks as well in this block.

Definition at line 413 of file Local.cpp.

References assert(), llvm::BasicBlock::begin(), llvm::BasicBlock::end(), RecursivelyDeleteTriviallyDeadInstructions(), and recursivelySimplifyInstruction().

bool llvm::simplifyLoop ( Loop L,
DominatorTree DT,
LoopInfo LI,
Pass PP,
AliasAnalysis AA = nullptr,
ScalarEvolution SE = nullptr,
const DataLayout DL = nullptr,
AssumptionCache AC = nullptr 
)

Simplify each loop in a loop nest recursively.

This takes a potentially un-simplified loop L (and its children) and turns it into a simplified loop nest with preheaders and single backedges. It will optionally update AliasAnalysis and ScalarEvolution analyses if passed into it.

Definition at line 715 of file LoopSimplify.cpp.

References llvm::LoopBase< N, M >::begin(), DL, llvm::SmallVectorBase::empty(), llvm::LoopBase< N, M >::end(), I, LI, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), simplifyOneLoop(), and llvm::SmallVectorTemplateCommon< T >::size().

Referenced by UnrollLoop().

bool llvm::simplifyLoopIVs ( Loop L,
ScalarEvolution SE,
LPPassManager LPM,
SmallVectorImpl< WeakVH > &  Dead 
)

SimplifyLoopIVs - Simplify users of induction variables within this loop. This does not actually change or add IVs.

Simplify users of induction variables within this loop. This does not actually change or add IVs.

Definition at line 576 of file SimplifyIndVar.cpp.

References llvm::LoopBase< N, M >::getHeader(), I, and simplifyUsersOfIV().

Referenced by UnrollLoop().

Value * llvm::SimplifyLShrInst ( Value Op0,
Value Op1,
bool  isExact,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifyLShrInst - Given operands for a LShr, see if we can fold the result. If not, this returns null.

Definition at line 1397 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyLShrInst().

Referenced by SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitLShr().

Value * llvm::SimplifyMulInst ( Value LHS,
Value RHS,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifyMulInst - Given operands for a Mul, see if we can fold the result. If not, this returns null.

Definition at line 989 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyMulInst().

Referenced by SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitMul().

Value * llvm::SimplifyOrInst ( Value LHS,
Value RHS,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifyOrInst - Given operands for an Or, see if we can fold the result. If not, this returns null.

Definition at line 1818 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyOrInst().

Referenced by SimplifyBinOp(), SimplifyInstruction(), ThreadCmpOverSelect(), and llvm::InstCombiner::visitOr().

Value * llvm::SimplifySDivInst ( Value LHS,
Value RHS,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifySDivInst - Given operands for an SDiv, see if we can fold the result. If not, this returns null.

Definition at line 1093 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifySDivInst().

Referenced by SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitSDiv().

Value * llvm::SimplifySelectInst ( Value Cond,
Value TrueVal,
Value FalseVal,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifySelectInst - Given operands for a SelectInst, see if we can fold the result. If not, this returns null.

Definition at line 3203 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifySelectInst().

Referenced by SimplifyInstruction(), and llvm::InstCombiner::visitSelectInst().

Value * llvm::SimplifyShlInst ( Value Op0,
Value Op1,
bool  isNSW,
bool  isNUW,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifyShlInst - Given operands for a Shl, see if we can fold the result. If not, this returns null.

Definition at line 1373 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyShlInst().

Referenced by SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitShl().

Value * llvm::SimplifySRemInst ( Value LHS,
Value RHS,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifySRemInst - Given operands for an SRem, see if we can fold the result. If not, this returns null.

Definition at line 1211 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifySRemInst().

Referenced by SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitSRem().

Value * llvm::SimplifySubInst ( Value LHS,
Value RHS,
bool  isNSW,
bool  isNUW,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifySubInst - Given operands for a Sub, see if we can fold the result. If not, this returns null.

Definition at line 783 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifySubInst().

Referenced by SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitSub().

Value * llvm::SimplifyTruncInst ( Value Op,
Type Ty,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifyTruncInst - Given operands for an TruncInst, see if we can fold the result. If not, this returns null.

Definition at line 3379 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyTruncInst().

Referenced by SimplifyInstruction(), and SimplifySubInst().

Value * llvm::SimplifyUDivInst ( Value LHS,
Value RHS,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifyUDivInst - Given operands for a UDiv, see if we can fold the result. If not, this returns null.

Definition at line 1111 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyUDivInst().

Referenced by SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitUDiv().

Value * llvm::SimplifyURemInst ( Value LHS,
Value RHS,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifyURemInst - Given operands for a URem, see if we can fold the result. If not, this returns null.

Definition at line 1229 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyURemInst().

Referenced by SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitURem().

bool llvm::simplifyUsersOfIV ( PHINode CurrIV,
ScalarEvolution SE,
LPPassManager LPM,
SmallVectorImpl< WeakVH > &  Dead,
IVVisitor V = nullptr 
)

simplifyUsersOfIV - Simplify instructions that use this induction variable by using ScalarEvolution to analyze the IV's recurrence.

Simplify instructions that use this induction variable by using ScalarEvolution to analyze the IV's recurrence.

Definition at line 565 of file SimplifyIndVar.cpp.

References llvm::Pass::getAnalysis(), llvm::LoopInfo::getLoopFor(), llvm::Instruction::getParent(), and LI.

Referenced by simplifyLoopIVs().

Value * llvm::SimplifyXorInst ( Value LHS,
Value RHS,
const DataLayout TD = nullptr,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr 
)

SimplifyXorInst - Given operands for a Xor, see if we can fold the result. If not, this returns null.

Definition at line 1875 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyXorInst().

Referenced by SimplifyAddInst(), SimplifyBinOp(), SimplifyInstruction(), SimplifySubInst(), ThreadCmpOverSelect(), and llvm::InstCombiner::visitXor().

bool llvm::SkipBitcodeWrapperHeader ( const unsigned char *&  BufPtr,
const unsigned char *&  BufEnd,
bool  VerifyBufferSize 
)
inline

SkipBitcodeWrapperHeader - Some systems wrap bc files with a special header for padding or other reasons. The format of this header is:

struct bc_header { uint32_t Magic; // 0x0B17C0DE uint32_t Version; // Version, currently always 0. uint32_t BitcodeOffset; // Offset to traditional bitcode file. uint32_t BitcodeSize; // Size of traditional bitcode file. ... potentially other gunk ... };

This function is called when we find a file with a matching magic number. In this case, skip down to the subsection of the file that is actually a BC file. If 'VerifyBufferSize' is true, check that the buffer is large enough to contain the whole bitcode file.

Definition at line 116 of file ReaderWriter.h.

const Value * llvm::skipPointerTransfer ( const Value V,
bool  ignore_GEP_indices 
)
const Value * llvm::skipPointerTransfer ( const Value V,
std::set< const Value * > &  processed 
)
static const char* llvm::SPARCCondCodeToString ( SPCC::CondCodes  CC)
inlinestatic
unsigned llvm::SplitAllCriticalEdges ( Function F,
Pass P 
)
BasicBlock * llvm::SplitBlock ( BasicBlock Old,
Instruction SplitPt,
Pass P 
)

SplitBlock - Split the specified block at the specified instruction - every thing before SplitPt stays in Old and everything starting with SplitPt moves to a new block. The two blocks are joined by an unconditional branch and the loop info is updated.

Definition at line 285 of file BasicBlockUtils.cpp.

References llvm::DominatorTreeBase< N >::addNewBlock(), llvm::DominatorTreeBase< N >::changeImmediateDominator(), llvm::Pass::getAnalysisIfAvailable(), llvm::Value::getName(), llvm::DominatorTreeBase< N >::getNode(), I, LI, and llvm::BasicBlock::splitBasicBlock().

Referenced by SplitEdge(), and UnrollRuntimeLoopProlog().

TerminatorInst * llvm::SplitBlockAndInsertIfThen ( Value Cond,
Instruction SplitBefore,
bool  Unreachable,
MDNode BranchWeights = nullptr,
DominatorTree DT = nullptr 
)

SplitBlockAndInsertIfThen - Split the containing block at the specified instruction - everything before and including SplitBefore stays in the old basic block, and everything after SplitBefore is moved to a new block. The two blocks are connected by a conditional branch (with value of Cmp being the condition). Before: Head SplitBefore Tail After: Head if (Cond) ThenBlock SplitBefore Tail

If Unreachable is true, then ThenBlock ends with UnreachableInst, otherwise it branches to Tail. Returns the NewBasicBlock's terminator.

Updates DT if given.

SplitBlockAndInsertIfThen - Split the containing block at the specified instruction - everything before and including SplitBefore stays in the old basic block, and everything after SplitBefore is moved to a new block. The two blocks are connected by a conditional branch (with value of Cmp being the condition). Before: Head SplitBefore Tail After: Head if (Cond) ThenBlock SplitBefore Tail

If Unreachable is true, then ThenBlock ends with UnreachableInst, otherwise it branches to Tail. Returns the NewBasicBlock's terminator.

Definition at line 685 of file BasicBlockUtils.cpp.

References llvm::DominatorTreeBase< N >::addNewBlock(), llvm::CallingConv::C, llvm::DominatorTreeBase< N >::changeImmediateDominator(), llvm::BasicBlock::Create(), llvm::BranchInst::Create(), llvm::BasicBlock::getContext(), llvm::Instruction::getDebugLoc(), llvm::DominatorTreeBase< N >::getNode(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::LLVMContext::MD_prof, ReplaceInstWithInst(), llvm::Instruction::setDebugLoc(), llvm::Instruction::setMetadata(), and llvm::BasicBlock::splitBasicBlock().

void llvm::SplitBlockAndInsertIfThenElse ( Value Cond,
Instruction SplitBefore,
TerminatorInst **  ThenTerm,
TerminatorInst **  ElseTerm,
MDNode BranchWeights = nullptr 
)

SplitBlockAndInsertIfThenElse is similar to SplitBlockAndInsertIfThen, but also creates the ElseBlock. Before: Head SplitBefore Tail After: Head if (Cond) ThenBlock else ElseBlock SplitBefore Tail

Definition at line 737 of file BasicBlockUtils.cpp.

References llvm::CallingConv::C, llvm::BasicBlock::Create(), llvm::BranchInst::Create(), llvm::BasicBlock::getContext(), llvm::Instruction::getDebugLoc(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::LLVMContext::MD_prof, ReplaceInstWithInst(), llvm::Instruction::setDebugLoc(), llvm::Instruction::setMetadata(), and llvm::BasicBlock::splitBasicBlock().

BasicBlock * llvm::SplitBlockPredecessors ( BasicBlock BB,
ArrayRef< BasicBlock * >  Preds,
const char *  Suffix,
Pass P = nullptr 
)

SplitBlockPredecessors - This method transforms BB by introducing a new basic block into the function, and moving some of the predecessors of BB to be predecessors of the new block. The new predecessors are indicated by the Preds array, which has NumPreds elements in it. The new block is given a suffix of 'Suffix'. This function returns the new block.

This currently updates the LLVM IR, AliasAnalysis, DominatorTree, DominanceFrontier, LoopInfo, and LCCSA but no other analyses. In particular, it does not preserve LoopSimplify (because it's complicated to handle the case where one of the edges being split is an exit of a loop with other exits).

SplitBlockPredecessors - This method transforms BB by introducing a new basic block into the function, and moving some of the predecessors of BB to be predecessors of the new block. The new predecessors are indicated by the Preds array, which has NumPreds elements in it. The new block is given a suffix of 'Suffix'.

This currently updates the LLVM IR, AliasAnalysis, DominatorTree, LoopInfo, and LCCSA but no other analyses. In particular, it does not preserve LoopSimplify (because it's complicated to handle the case where one of the edges being split is an exit of a loop with other exits).

Definition at line 475 of file BasicBlockUtils.cpp.

References assert(), llvm::BasicBlock::begin(), llvm::BasicBlock::Create(), llvm::BranchInst::Create(), llvm::UndefValue::get(), llvm::BasicBlock::getContext(), llvm::Value::getName(), llvm::BasicBlock::getParent(), I, llvm::ArrayRef< T >::size(), UpdateAnalysisInformation(), and UpdatePHINodes().

Referenced by ConnectProlog(), InsertPreheaderForLoop(), rewriteLoopExitBlock(), separateNestedLoop(), and SplitCriticalEdge().

BasicBlock * llvm::SplitCriticalEdge ( TerminatorInst TI,
unsigned  SuccNum,
Pass P = nullptr,
bool  MergeIdenticalEdges = false,
bool  DontDeleteUselessPhis = false,
bool  SplitLandingPads = false 
)

SplitCriticalEdge - If this edge is a critical edge, insert a new node to split the critical edge. This will update DominatorTree and DominatorFrontier information if it is available, thus calling this pass will not invalidate either of them. This returns the new block if the edge was split, null otherwise.

If MergeIdenticalEdges is true (not the default), all edges from TI to the specified successor will be merged into the same critical edge block. This is most commonly interesting with switch instructions, which may have many edges to any one destination. This ensures that all edges to that dest go to one block instead of each going to a different block, but isn't the standard definition of a "critical edge".

It is invalid to call this function on a critical edge that starts at an IndirectBrInst. Splitting these edges will almost always create an invalid program because the address of the new block won't be the one that is jumped to.

SplitCriticalEdge - If this edge is a critical edge, insert a new node to split the critical edge. This will update DominatorTree information if it is available, thus calling this pass will not invalidate either of them. This returns the new block if the edge was split, null otherwise.

If MergeIdenticalEdges is true (not the default), all edges from TI to the specified successor will be merged into the same critical edge block. This is most commonly interesting with switch instructions, which may have many edges to any one destination. This ensures that all edges to that dest go to one block instead of each going to a different block, but isn't the standard definition of a "critical edge".

It is invalid to call this function on a critical edge that starts at an IndirectBrInst. Splitting these edges will almost always create an invalid program because the address of the new block won't be the one that is jumped to.

Definition at line 127 of file BreakCriticalEdges.cpp.

References assert(), llvm::SmallVectorTemplateCommon< T >::back(), llvm::BasicBlock::begin(), llvm::SmallVectorImpl< T >::clear(), llvm::BasicBlock::Create(), llvm::BranchInst::Create(), createPHIsForSplitLoopExit(), llvm::SmallVectorBase::empty(), F(), llvm::Pass::getAnalysisIfAvailable(), llvm::LoopInfo::getBase(), llvm::PHINode::getBasicBlockIndex(), llvm::Function::getBasicBlockList(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::DominatorTreeWrapperPass::getDomTree(), llvm::PHINode::getIncomingBlock(), llvm::LoopInfo::getLoopFor(), llvm::Value::getName(), llvm::TerminatorInst::getNumSuccessors(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::TerminatorInst::getSuccessor(), I, llvm::iplist< NodeTy, Traits >::insert(), isCriticalEdge(), llvm::BasicBlock::isLandingPad(), LCSSAID, LI, LoopSimplifyID, llvm::Pass::mustPreserveAnalysisID(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::pop_back(), pred_begin(), pred_end(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::BasicBlock::removePredecessor(), llvm::PHINode::setIncomingBlock(), llvm::TerminatorInst::setSuccessor(), and SplitBlockPredecessors().

Referenced by DemoteRegToStack(), SplitAllCriticalEdges(), SplitCriticalEdge(), SplitCriticalSideEffectEdges(), and SplitEdge().

BasicBlock* llvm::SplitCriticalEdge ( BasicBlock *  BB,
succ_iterator  SI,
Pass P = nullptr 
)
inline
bool llvm::SplitCriticalEdge ( BasicBlock *  Succ,
pred_iterator  PI,
Pass P = nullptr 
)
inline

SplitCriticalEdge - If the edge from *PI to BB is not critical, return false. Otherwise, split all edges between the two blocks and return true. This updates all of the same analyses as the other SplitCriticalEdge function. If P is specified, it updates the analyses described above.

Definition at line 107 of file BasicBlockUtils.h.

References llvm::TerminatorInst::getNumSuccessors(), llvm::TerminatorInst::getSuccessor(), P, and SplitCriticalEdge().

BasicBlock* llvm::SplitCriticalEdge ( BasicBlock *  Src,
BasicBlock *  Dst,
Pass P = nullptr,
bool  MergeIdenticalEdges = false,
bool  DontDeleteUselessPHIs = false 
)
inline

SplitCriticalEdge - If an edge from Src to Dst is critical, split the edge and return true, otherwise return false. This method requires that there be an edge between the two blocks. If P is specified, it updates the analyses described above.

Definition at line 121 of file BasicBlockUtils.h.

References assert(), llvm::TerminatorInst::getNumSuccessors(), llvm::TerminatorInst::getSuccessor(), llvm::BasicBlock::getTerminator(), P, and SplitCriticalEdge().

BasicBlock * llvm::SplitEdge ( BasicBlock BB,
BasicBlock Succ,
Pass P 
)
void llvm::SplitLandingPadPredecessors ( BasicBlock OrigBB,
ArrayRef< BasicBlock * >  Preds,
const char *  Suffix1,
const char *  Suffix2,
Pass P,
SmallVectorImpl< BasicBlock * > &  NewBBs 
)

SplitLandingPadPredecessors - This method transforms the landing pad, OrigBB, by introducing two new basic blocks into the function. One of those new basic blocks gets the predecessors listed in Preds. The other basic block gets the remaining predecessors of OrigBB. The landingpad instruction OrigBB is clone into both of the new basic blocks. The new blocks are given the suffixes 'Suffix1' and 'Suffix2', and are returned in the NewBBs vector.

This currently updates the LLVM IR, AliasAnalysis, DominatorTree, DominanceFrontier, LoopInfo, and LCCSA but no other analyses. In particular, it does not preserve LoopSimplify (because it's complicated to handle the case where one of the edges being split is an exit of a loop with other exits).

Definition at line 528 of file BasicBlockUtils.cpp.

References llvm::PHINode::addIncoming(), assert(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::Instruction::clone(), llvm::BasicBlock::Create(), llvm::PHINode::Create(), llvm::BranchInst::Create(), llvm::SmallVectorBase::empty(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::Instruction::eraseFromParent(), llvm::BasicBlock::getContext(), llvm::BasicBlock::getFirstInsertionPt(), llvm::BasicBlock::getInstList(), llvm::BasicBlock::getLandingPadInst(), llvm::Value::getName(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::iplist< NodeTy, Traits >::insert(), llvm::BasicBlock::isLandingPad(), pred_begin(), pred_end(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::Value::replaceAllUsesWith(), llvm::Value::setName(), llvm::ArrayRef< T >::size(), UpdateAnalysisInformation(), and UpdatePHINodes().

Referenced by ConnectProlog(), InsertPreheaderForLoop(), and rewriteLoopExitBlock().

void llvm::SplitString ( StringRef  Source,
SmallVectorImpl< StringRef > &  OutFragments,
StringRef  Delimiters = " \t\n\v\f\r" 
)

SplitString - Split up the specified string according to the specified delimiters, appending the result fragments to the output list.

Definition at line 51 of file StringExtras.cpp.

References getToken(), and llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().

Referenced by llvm::ARMTargetLowering::ExpandInlineAsm(), llvm::X86TargetLowering::ExpandInlineAsm(), and llvm::sys::Process::FindInEnvPath().

StringRef::size_type llvm::StrInStrNoCase ( StringRef  s1,
StringRef  s2 
)

StrInStrNoCase - Portable version of strcasestr. Locates the first occurrence of string 's1' in string 's2', ignoring case. Returns the offset of s2 in s1 or npos if s2 cannot be found.

Definition at line 22 of file StringExtras.cpp.

References llvm::StringRef::equals_lower(), N, llvm::StringRef::npos, llvm::StringRef::size(), and llvm::StringRef::substr().

bool llvm::StripDebugInfo ( Module M)

Strip debug info in the module if it exists.

To do this, we remove all calls to the debugger intrinsics and any named metadata for debugging. We also remove debug locations for instructions. Return true if module is modified.

Definition at line 1463 of file DebugInfo.cpp.

References llvm::Module::begin(), llvm::Module::end(), llvm::Instruction::eraseFromParent(), llvm::NamedMDNode::eraseFromParent(), llvm::Module::getFunction(), llvm::NamedMDNode::getName(), llvm::AArch64CC::MI, llvm::Module::named_metadata_begin(), llvm::Module::named_metadata_end(), and llvm::StringRef::startswith().

Referenced by UpgradeDebugInfo().

static Constant* llvm::SubOne ( Constant *  C)
inlinestatic
Interval::succ_iterator llvm::succ_begin ( Interval *  I)
inline
succ_iterator llvm::succ_begin ( BasicBlock *  BB)
inline

Definition at line 251 of file IR/CFG.h.

References llvm::BasicBlock::getTerminator().

succ_const_iterator llvm::succ_begin ( const BasicBlock *  BB)
inline

Definition at line 254 of file IR/CFG.h.

References llvm::BasicBlock::getTerminator().

template<class NodeType , class BlockT , class RegionT >
RNSuccIterator<NodeType, BlockT, RegionT> llvm::succ_begin ( NodeType *  Node)
inline

Definition at line 256 of file RegionIterator.h.

References Node.

bool llvm::succ_empty ( const BasicBlock *  BB)
inline

Definition at line 263 of file IR/CFG.h.

References succ_begin(), and succ_end().

Referenced by FindFunctionBackedges().

Interval::succ_iterator llvm::succ_end ( Interval *  I)
inline
succ_iterator llvm::succ_end ( BasicBlock *  BB)
inline

Definition at line 257 of file IR/CFG.h.

References llvm::BasicBlock::getTerminator().

succ_const_iterator llvm::succ_end ( const BasicBlock *  BB)
inline

Definition at line 260 of file IR/CFG.h.

References llvm::BasicBlock::getTerminator().

template<class NodeType , class BlockT , class RegionT >
RNSuccIterator<NodeType, BlockT, RegionT> llvm::succ_end ( NodeType *  Node)
inline

Definition at line 261 of file RegionIterator.h.

References Node.

int llvm::TableGenMain ( char *  argv0,
TableGenMainFn *  MainFn 
)
llvm::TEMPLATE_INSTANTIATION ( class DomTreeNodeBase< MachineBasicBlock )
llvm::TEMPLATE_INSTANTIATION ( class DominatorTreeBase< MachineBasicBlock )
static StringRef llvm::toStringRef ( bool  B)
inlinestatic

Construct a string ref from a boolean.

Definition at line 32 of file StringExtras.h.

const SCEV * llvm::TransformForPostIncUse ( TransformKind  Kind,
const SCEV S,
Instruction User,
Value OperandValToReplace,
PostIncLoopSet Loops,
ScalarEvolution SE,
DominatorTree DT 
)

TransformForPostIncUse - Transform the given expression according to the given transformation kind.

Top level driver for transforming an expression DAG into its requested post-inc form (either "Normalized" or "Denormalized").

Definition at line 245 of file ScalarEvolutionNormalization.cpp.

Referenced by llvm::IVUsers::AddUsersImpl(), and llvm::IVUsers::getExpr().

bool llvm::tryFoldSPUpdateIntoPushPop ( const ARMSubtarget Subtarget,
MachineFunction MF,
MachineInstr MI,
unsigned  NumBytes 
)
bool llvm::TryToSimplifyUncondBranchFromEmptyBlock ( BasicBlock BB)

TryToSimplifyUncondBranchFromEmptyBlock - BB is known to contain an unconditional branch, and contains no instructions other than PHI nodes, potential debug intrinsics and the branch. If possible, eliminate BB by rewriting all the predecessors to branch to the successor block and return true. If we can't transform, return false.

TryToSimplifyUncondBranchFromEmptyBlock - BB is known to contain an unconditional branch, and contains no instructions other than PHI nodes, potential side-effect free intrinsics and the branch. If possible, eliminate BB by rewriting all the predecessors to branch to the successor block and return true. If we can't transform, return false.

Definition at line 746 of file Local.cpp.

References assert(), llvm::BasicBlock::begin(), CanPropagatePredecessorsForPHIs(), dbgs(), DEBUG, llvm::Instruction::eraseFromParent(), llvm::BasicBlock::eraseFromParent(), llvm::BasicBlock::front(), llvm::Function::getEntryBlock(), llvm::BasicBlock::getInstList(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), I, pred_begin(), pred_end(), redirectValuesFromPredecessorsToPhi(), and llvm::Value::replaceAllUsesWith().

bool llvm::UnrollLoop ( Loop L,
unsigned  Count,
unsigned  TripCount,
bool  AllowRuntime,
unsigned  TripMultiple,
LoopInfo LI,
Pass PP,
LPPassManager LPM,
AssumptionCache AC 
)

Unroll the given loop by Count. The loop must be in LCSSA form. Returns true if unrolling was successful, or false if the loop was unmodified. Unrolling can only fail when the loop's latch block is not terminated by a conditional branch instruction. However, if the trip count (and multiple) are not known, loop unrolling will mostly produce more code that is no faster.

TripCount is generally defined as the number of times the loop header executes. UnrollLoop relaxes the definition to permit early exits: here TripCount is the iteration on which control exits LatchBlock if no early exits were taken. Note that UnrollLoop assumes that the loop counter test terminates LatchBlock in order to remove unnecesssary instances of the test. In other words, control may exit the loop prior to TripCount iterations via an early branch, but control may not exit the loop from the LatchBlock's terminator prior to TripCount iterations.

Similarly, TripMultiple divides the number of times that the LatchBlock may execute without exiting the loop.

The LoopInfo Analysis that is passed will be kept consistent.

If a LoopPassManager is passed in, and the loop is fully removed, it will be removed from the LoopPassManager as well. LPM can also be NULL.

This utility preserves LoopInfo. If DominatorTree or ScalarEvolution are available from the Pass it must also preserve those analyses.

Definition at line 156 of file LoopUnroll.cpp.

References llvm::LoopBase< N, M >::addBasicBlockToLoop(), llvm::PHINode::addIncoming(), assert(), llvm::sys::path::begin(), llvm::ValueMap< KeyT, ValueT, Config >::begin(), llvm::BasicBlock::begin(), llvm::LoopBlocksDFS::beginRPO(), llvm::AssumptionCache::clear(), CloneBasicBlock(), llvm::LoopBase< N, M >::contains(), llvm::BranchInst::Create(), dbgs(), DEBUG, DEBUG_TYPE, llvm::LPPassManager::deleteLoopFromQueue(), DL, dyn_cast(), emitOptimizationRemark(), llvm::SmallVectorBase::empty(), llvm::sys::path::const_iterator::end, llvm::ValueMap< KeyT, ValueT, Config >::end(), llvm::LoopBlocksDFS::endRPO(), llvm::iplist< NodeTy, Traits >::erase(), llvm::Instruction::eraseFromParent(), F(), llvm::ValueMap< KeyT, ValueT, Config >::find(), FoldBlockIntoPredecessor(), for(), llvm::ScalarEvolution::forgetLoop(), formLCSSARecursively(), llvm::Pass::getAnalysisIfAvailable(), llvm::LoopInfo::getBase(), llvm::Function::getBasicBlockList(), llvm::LoopBase< N, M >::getBlocks(), llvm::Function::getContext(), llvm::DataLayoutPass::getDataLayout(), llvm::LoopBase< N, M >::getHeader(), llvm::PHINode::getIncomingValueForBlock(), llvm::BasicBlock::getInstList(), llvm::LoopInfo::getLoopFor(), llvm::LoopBase< N, M >::getLoopLatch(), llvm::LoopBase< N, M >::getLoopPreheader(), llvm::Value::getName(), llvm::BasicBlock::getParent(), llvm::LoopBase< N, M >::getParentLoop(), llvm::Loop::getStartLoc(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), GreatestCommonDivisor64(), llvm::BasicBlock::hasAddressTaken(), I, isInstructionTriviallyDead(), llvm::Loop::isSafeToClone(), llvm::BranchInst::isUnconditional(), llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::lookup(), llvm::GC::Loop, llvm::LoopBlocksDFS::perform(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::iplist< NodeTy, Traits >::push_back(), llvm::DominatorTreeBase< N >::recalculate(), RecursivelyDeleteTriviallyDeadInstructions(), RemapInstruction(), llvm::PHINode::removeIncomingValue(), llvm::Value::replaceAllUsesWith(), llvm::LoopInfo::replacementPreservesLCSSAForm(), llvm::ValueMapIterator< DenseMapT, KeyT >::ValueTypeProxy::second, llvm::BranchInst::setSuccessor(), SI, SimplifyInstruction(), simplifyLoop(), simplifyLoopIVs(), succ_begin(), succ_end(), T, UnrollRuntimeLoopProlog(), and VI.

bool llvm::UnrollRuntimeLoopProlog ( Loop L,
unsigned  Count,
LoopInfo LI,
LPPassManager LPM 
)

Insert code in the prolog code when unrolling a loop with a run-time trip-count.

This method assumes that the loop unroll factor is total number of loop bodes in the loop after unrolling. (Some folks refer to the unroll factor as the number of extra copies added). We assume also that the loop unroll factor is a power-of-two. So, after unrolling the loop, the number of loop bodies executed is 2, 4, 8, etc. Note - LLVM converts the if-then-sequence to a switch instruction in SimplifyCFG.cpp. Then, the backend decides how code for the switch instruction is generated.

   extraiters = tripcount % loopfactor
   if (extraiters == 0) jump Loop:
   else jump Prol

Prol: LoopBody; extraiters -= 1 // Omitted if unroll factor is 2. if (extraiters != 0) jump Prol: // Omitted if unroll factor is 2. if (tripcount < loopfactor) jump End Loop: ... End:

Definition at line 281 of file LoopUnrollRuntime.cpp.

References assert(), llvm::sys::path::begin(), CloneLoopBlocks(), ConnectProlog(), llvm::BranchInst::Create(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateAnd(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateIsNotNull(), llvm::sys::path::const_iterator::end, llvm::Function::end(), F(), llvm::ScalarEvolution::forgetLoop(), llvm::ScalarEvolution::getAddExpr(), llvm::Pass::getAnalysisIfAvailable(), llvm::LPPassManager::getAsPass(), llvm::ScalarEvolution::getBackedgeTakenCount(), llvm::Function::getBasicBlockList(), getBitWidth(), llvm::ScalarEvolution::getConstant(), llvm::LoopBase< N, M >::getExitingBlock(), llvm::LoopBase< N, M >::getHeader(), llvm::LoopBase< N, M >::getLoopLatch(), llvm::LoopBase< N, M >::getLoopPreheader(), llvm::BasicBlock::getParent(), llvm::LoopBase< N, M >::getParentLoop(), llvm::BasicBlock::getTerminator(), llvm::SCEV::getType(), llvm::Loop::getUniqueExitBlock(), I, llvm::Type::isIntegerTy(), llvm::Loop::isLoopSimplifyForm(), isPowerOf2_32(), llvm::LoopBlocksDFS::perform(), RemapInstruction(), RF_IgnoreMissingEntries, RF_NoModuleLevelChanges, llvm::iplist< NodeTy, Traits >::splice(), SplitBlock(), and SplitEdge().

Referenced by UnrollLoop().

CodeModel::Model llvm::unwrap ( LLVMCodeModel  Model)
inline
LLVMContext** llvm::unwrap ( LLVMContextRef Tys)
inline

Definition at line 202 of file LLVMContext.h.

DataLayout* llvm::unwrap ( LLVMTargetDataRef  P)
inline

Definition at line 441 of file DataLayout.h.

References P.

Referenced by LLVMABIAlignmentOfType(), LLVMABISizeOfType(), LLVMAddAggressiveDCEPass(), LLVMAddAlias(), LLVMAddAlignmentFromAssumptionsPass(), LLVMAddAlwaysInlinerPass(), LLVMAddAnalysisPasses(), LLVMAddArgumentPromotionPass(), LLVMAddBasicAliasAnalysisPass(), LLVMAddBBVectorizePass(), LLVMAddCase(), LLVMAddCFGSimplificationPass(), LLVMAddClause(), LLVMAddConstantMergePass(), LLVMAddConstantPropagationPass(), LLVMAddCorrelatedValuePropagationPass(), LLVMAddDeadArgEliminationPass(), LLVMAddDeadStoreEliminationPass(), LLVMAddDemoteMemoryToRegisterPass(), LLVMAddDestination(), LLVMAddEarlyCSEPass(), LLVMAddFunction(), LLVMAddFunctionAttrsPass(), LLVMAddFunctionInliningPass(), LLVMAddGlobal(), LLVMAddGlobalDCEPass(), LLVMAddGlobalInAddressSpace(), LLVMAddGlobalMapping(), LLVMAddGlobalOptimizerPass(), LLVMAddGVNPass(), LLVMAddIncoming(), LLVMAddIndVarSimplifyPass(), LLVMAddInstructionCombiningPass(), LLVMAddInternalizePass(), LLVMAddIPConstantPropagationPass(), LLVMAddIPSCCPPass(), LLVMAddJumpThreadingPass(), LLVMAddLICMPass(), LLVMAddLoopDeletionPass(), LLVMAddLoopIdiomPass(), LLVMAddLoopRerollPass(), LLVMAddLoopRotatePass(), LLVMAddLoopUnrollPass(), LLVMAddLoopUnswitchPass(), LLVMAddLoopVectorizePass(), LLVMAddLowerExpectIntrinsicPass(), LLVMAddLowerSwitchPass(), LLVMAddMemCpyOptPass(), LLVMAddMergedLoadStoreMotionPass(), LLVMAddModule(), LLVMAddNamedMetadataOperand(), LLVMAddPartiallyInlineLibCallsPass(), LLVMAddPromoteMemoryToRegisterPass(), LLVMAddPruneEHPass(), LLVMAddReassociatePass(), LLVMAddScalarizerPass(), LLVMAddScalarReplAggregatesPass(), LLVMAddScalarReplAggregatesPassSSA(), LLVMAddScalarReplAggregatesPassWithThreshold(), LLVMAddSCCPPass(), LLVMAddScopedNoAliasAAPass(), LLVMAddSLPVectorizePass(), LLVMAddStripDeadPrototypesPass(), LLVMAddStripSymbolsPass(), LLVMAddTailCallEliminationPass(), LLVMAddTargetData(), LLVMAddTargetLibraryInfo(), LLVMAddTypeBasedAliasAnalysisPass(), LLVMAddVerifierPass(), LLVMAlignOf(), LLVMAppendBasicBlockInContext(), LLVMArrayType(), LLVMBasicBlockAsValue(), LLVMBlockAddress(), LLVMBuildAdd(), LLVMBuildAddrSpaceCast(), LLVMBuildAggregateRet(), LLVMBuildAlloca(), LLVMBuildAnd(), LLVMBuildArrayAlloca(), LLVMBuildArrayMalloc(), LLVMBuildAShr(), LLVMBuildAtomicRMW(), LLVMBuildBinOp(), LLVMBuildBitCast(), LLVMBuildBr(), LLVMBuildCall(), LLVMBuildCast(), LLVMBuildCondBr(), LLVMBuildExactSDiv(), LLVMBuildExtractElement(), LLVMBuildExtractValue(), LLVMBuildFAdd(), LLVMBuildFCmp(), LLVMBuildFDiv(), LLVMBuildFence(), LLVMBuildFMul(), LLVMBuildFNeg(), LLVMBuildFPCast(), LLVMBuildFPExt(), LLVMBuildFPToSI(), LLVMBuildFPToUI(), LLVMBuildFPTrunc(), LLVMBuildFree(), LLVMBuildFRem(), LLVMBuildFSub(), LLVMBuildGEP(), LLVMBuildGlobalString(), LLVMBuildGlobalStringPtr(), LLVMBuildICmp(), LLVMBuildInBoundsGEP(), LLVMBuildIndirectBr(), LLVMBuildInsertElement(), LLVMBuildInsertValue(), LLVMBuildIntCast(), LLVMBuildIntToPtr(), LLVMBuildInvoke(), LLVMBuildIsNotNull(), LLVMBuildIsNull(), LLVMBuildLandingPad(), LLVMBuildLoad(), LLVMBuildLShr(), LLVMBuildMalloc(), LLVMBuildMul(), LLVMBuildNeg(), LLVMBuildNot(), LLVMBuildNSWAdd(), LLVMBuildNSWMul(), LLVMBuildNSWNeg(), LLVMBuildNSWSub(), LLVMBuildNUWAdd(), LLVMBuildNUWMul(), LLVMBuildNUWNeg(), LLVMBuildNUWSub(), LLVMBuildOr(), LLVMBuildPhi(), LLVMBuildPointerCast(), LLVMBuildPtrDiff(), LLVMBuildPtrToInt(), LLVMBuildResume(), LLVMBuildRet(), LLVMBuildRetVoid(), LLVMBuildSDiv(), LLVMBuildSelect(), LLVMBuildSExt(), LLVMBuildSExtOrBitCast(), LLVMBuildShl(), LLVMBuildShuffleVector(), LLVMBuildSIToFP(), LLVMBuildSRem(), LLVMBuildStore(), LLVMBuildStructGEP(), LLVMBuildSub(), LLVMBuildSwitch(), LLVMBuildTrunc(), LLVMBuildTruncOrBitCast(), LLVMBuildUDiv(), LLVMBuildUIToFP(), LLVMBuildUnreachable(), LLVMBuildURem(), LLVMBuildVAArg(), LLVMBuildXor(), LLVMBuildZExt(), LLVMBuildZExtOrBitCast(), LLVMByteOrder(), LLVMCallFrameAlignmentOfType(), LLVMClearInsertionPosition(), LLVMCloneModule(), LLVMConstAddrSpaceCast(), LLVMConstAllOnes(), LLVMConstArray(), LLVMConstBitCast(), LLVMConstFPCast(), LLVMConstFPExt(), LLVMConstFPToSI(), LLVMConstFPToUI(), LLVMConstFPTrunc(), LLVMConstInlineAsm(), LLVMConstIntCast(), LLVMConstIntToPtr(), LLVMConstNamedStruct(), LLVMConstNull(), LLVMConstPointerCast(), LLVMConstPtrToInt(), LLVMConstReal(), LLVMConstRealOfString(), LLVMConstRealOfStringAndSize(), LLVMConstSExt(), LLVMConstSExtOrBitCast(), LLVMConstSIToFP(), LLVMConstStringInContext(), LLVMConstStructInContext(), LLVMConstTrunc(), LLVMConstTruncOrBitCast(), LLVMConstUIToFP(), LLVMConstZExt(), LLVMConstZExtOrBitCast(), LLVMContextDispose(), LLVMContextSetDiagnosticHandler(), LLVMContextSetYieldCallback(), LLVMCopyStringRepOfTargetData(), LLVMCreateBuilderInContext(), LLVMCreateExecutionEngineForModule(), LLVMCreateFunctionPassManagerForModule(), LLVMCreateGenericValueOfFloat(), LLVMCreateInterpreterForModule(), LLVMCreateJITCompilerForModule(), LLVMCreateMCJITCompilerForModule(), LLVMCreateObjectFile(), LLVMCreateTargetMachine(), LLVMDeleteBasicBlock(), LLVMDisposeBuilder(), LLVMDisposeExecutionEngine(), LLVMDisposeGenericValue(), LLVMDisposeMCJITMemoryManager(), LLVMDisposeMemoryBuffer(), LLVMDisposeModule(), LLVMDisposeModuleProvider(), LLVMDisposeObjectFile(), LLVMDisposePassManager(), LLVMDisposeRelocationIterator(), LLVMDisposeSectionIterator(), LLVMDisposeSymbolIterator(), LLVMDisposeTargetData(), LLVMDisposeTargetMachine(), LLVMDoubleTypeInContext(), LLVMDumpModule(), LLVMDumpType(), LLVMDumpValue(), LLVMElementAtOffset(), LLVMFindFunction(), LLVMFloatTypeInContext(), LLVMFP128TypeInContext(), LLVMFunctionType(), LLVMGenericValueIntWidth(), LLVMGenericValueToFloat(), LLVMGenericValueToInt(), LLVMGenericValueToPointer(), LLVMGetAsString(), LLVMGetBasicBlockParent(), LLVMGetBasicBlockTerminator(), LLVMGetBitcodeModuleInContext(), LLVMGetBufferSize(), LLVMGetBufferStart(), LLVMGetCurrentDebugLocation(), LLVMGetDataLayout(), LLVMGetDiagInfoDescription(), LLVMGetDiagInfoSeverity(), LLVMGetElementAsConstant(), LLVMGetExecutionEngineTargetData(), LLVMGetExecutionEngineTargetMachine(), LLVMGetFCmpPredicate(), LLVMGetFirstFunction(), LLVMGetFirstGlobal(), LLVMGetFirstInstruction(), LLVMGetFirstUse(), LLVMGetFunctionAddress(), LLVMGetGlobalValueAddress(), LLVMGetICmpPredicate(), LLVMGetInsertBlock(), LLVMGetInstructionCallConv(), LLVMGetInstructionOpcode(), LLVMGetIntrinsicID(), LLVMGetLastFunction(), LLVMGetLastGlobal(), LLVMGetLastInstruction(), LLVMGetMDKindIDInContext(), LLVMGetMDNodeNumOperands(), LLVMGetMDNodeOperands(), LLVMGetMDString(), LLVMGetModuleContext(), LLVMGetNamedFunction(), LLVMGetNamedGlobal(), LLVMGetNamedMetadataNumOperands(), LLVMGetNamedMetadataOperands(), LLVMGetNextBasicBlock(), LLVMGetNextTarget(), LLVMGetNextUse(), LLVMGetNumOperands(), LLVMGetOperand(), LLVMGetOperandUse(), LLVMGetPointerToGlobal(), LLVMGetPreviousBasicBlock(), LLVMGetRelocationAddress(), LLVMGetRelocationOffset(), LLVMGetRelocations(), LLVMGetRelocationSymbol(), LLVMGetRelocationType(), LLVMGetRelocationTypeName(), LLVMGetRelocationValueString(), LLVMGetSectionAddress(), LLVMGetSectionContainsSymbol(), LLVMGetSectionContents(), LLVMGetSectionName(), LLVMGetSections(), LLVMGetSectionSize(), LLVMGetSymbolAddress(), LLVMGetSymbolName(), LLVMGetSymbols(), LLVMGetSymbolSize(), LLVMGetTarget(), LLVMGetTargetDescription(), LLVMGetTargetMachineCPU(), LLVMGetTargetMachineData(), LLVMGetTargetMachineFeatureString(), LLVMGetTargetMachineTarget(), LLVMGetTargetMachineTriple(), LLVMGetTargetName(), LLVMGetTypeByName(), LLVMGetTypeContext(), LLVMGetTypeKind(), LLVMGetUndef(), LLVMGetUsedValue(), LLVMGetUser(), LLVMGetValueName(), LLVMHalfTypeInContext(), LLVMInitializeAnalysis(), LLVMInitializeCodeGen(), LLVMInitializeCore(), LLVMInitializeInstCombine(), LLVMInitializeInstrumentation(), LLVMInitializeIPA(), LLVMInitializeIPO(), LLVMInitializeObjCARCOpts(), LLVMInitializeScalarOpts(), LLVMInitializeTarget(), LLVMInitializeTransformUtils(), LLVMInitializeVectorization(), LLVMInsertBasicBlockInContext(), LLVMInsertIntoBuilder(), LLVMInsertIntoBuilderWithName(), LLVMInstructionClone(), LLVMInt16TypeInContext(), LLVMInt1TypeInContext(), LLVMInt32TypeInContext(), LLVMInt64TypeInContext(), LLVMInt8TypeInContext(), LLVMIntPtrType(), LLVMIntPtrTypeForAS(), LLVMIntPtrTypeForASInContext(), LLVMIntPtrTypeInContext(), LLVMIntTypeInContext(), LLVMIsAMDNode(), LLVMIsAMDString(), LLVMIsConstant(), LLVMIsConstantString(), LLVMIsNull(), LLVMIsRelocationIteratorAtEnd(), LLVMIsSectionIteratorAtEnd(), LLVMIsSymbolIteratorAtEnd(), LLVMIsUndef(), LLVMLabelTypeInContext(), LLVMLinkModules(), LLVMMDNodeInContext(), LLVMMDStringInContext(), LLVMModuleCreateWithNameInContext(), LLVMMoveBasicBlockAfter(), LLVMMoveBasicBlockBefore(), LLVMMoveToContainingSection(), LLVMMoveToNextRelocation(), LLVMMoveToNextSection(), LLVMMoveToNextSymbol(), LLVMOffsetOfElement(), LLVMParseBitcodeInContext(), LLVMParseIRInContext(), LLVMPassManagerBuilderDispose(), LLVMPassManagerBuilderPopulateFunctionPassManager(), LLVMPassManagerBuilderPopulateLTOPassManager(), LLVMPassManagerBuilderPopulateModulePassManager(), LLVMPassManagerBuilderSetDisableUnitAtATime(), LLVMPassManagerBuilderSetDisableUnrollLoops(), LLVMPassManagerBuilderSetOptLevel(), LLVMPassManagerBuilderSetSizeLevel(), LLVMPassManagerBuilderUseInlinerWithThreshold(), LLVMPointerSize(), LLVMPointerSizeForAS(), LLVMPointerType(), LLVMPositionBuilder(), LLVMPositionBuilderAtEnd(), LLVMPositionBuilderBefore(), LLVMPPCFP128TypeInContext(), LLVMPreferredAlignmentOfGlobal(), LLVMPreferredAlignmentOfType(), LLVMPrintModuleToFile(), LLVMPrintModuleToString(), LLVMPrintTypeToString(), LLVMPrintValueToString(), LLVMRemoveBasicBlockFromParent(), LLVMRemoveModule(), LLVMReplaceAllUsesWith(), LLVMRunFunction(), LLVMRunFunctionAsMain(), LLVMRunPassManager(), LLVMRunStaticConstructors(), LLVMRunStaticDestructors(), LLVMSetCondition(), LLVMSetCurrentDebugLocation(), LLVMSetDataLayout(), LLVMSetInstDebugLocation(), LLVMSetInstructionCallConv(), LLVMSetModuleInlineAsm(), LLVMSetOperand(), LLVMSetSuccessor(), LLVMSetTarget(), LLVMSetTargetMachineAsmVerbosity(), LLVMSetValueName(), LLVMSizeOf(), LLVMSizeOfTypeInBits(), LLVMStoreSizeOfType(), LLVMStructCreateNamed(), LLVMStructSetBody(), LLVMStructTypeInContext(), LLVMTargetHasAsmBackend(), LLVMTargetHasJIT(), LLVMTargetHasTargetMachine(), LLVMTargetMachineEmit(), LLVMTypeIsSized(), LLVMTypeOf(), LLVMValueIsBasicBlock(), LLVMVectorType(), LLVMVerifyModule(), LLVMVoidTypeInContext(), LLVMWriteBitcodeToFD(), LLVMWriteBitcodeToFile(), LLVMWriteBitcodeToMemoryBuffer(), LLVMX86FP80TypeInContext(), and LLVMX86MMXTypeInContext().

Type** llvm::unwrap ( LLVMTypeRef Tys)
inline

Definition at line 478 of file Type.h.

Module* llvm::unwrap ( LLVMModuleProviderRef  MP)
inline

Definition at line 683 of file Module.h.

Value** llvm::unwrap ( LLVMValueRef Vals)
inline

Definition at line 713 of file Value.h.

template<typename T >
T** llvm::unwrap ( LLVMValueRef Vals,
unsigned  Length 
)
inline

Definition at line 718 of file Value.h.

References I.

Value * llvm::UpgradeBitCastExpr ( unsigned  Opc,
Constant C,
Type DestTy 
)

This is an auto-upgrade for bitcast constant expression between pointers with different address spaces: the instruction is replaced by a pair ptrtoint+inttoptr.

Definition at line 621 of file AutoUpgrade.cpp.

References llvm::Value::getContext(), llvm::Type::getInt64Ty(), llvm::ConstantExpr::getIntToPtr(), llvm::Type::getPointerAddressSpace(), llvm::ConstantExpr::getPtrToInt(), llvm::Value::getType(), and llvm::Type::isPtrOrPtrVectorTy().

Instruction * llvm::UpgradeBitCastInst ( unsigned  Opc,
Value V,
Type DestTy,
Instruction *&  Temp 
)

This is an auto-upgrade for bitcast between pointers with different address spaces: the instruction is replaced by a pair ptrtoint+inttoptr.

Definition at line 599 of file AutoUpgrade.cpp.

References llvm::CastInst::Create(), llvm::Value::getContext(), llvm::Type::getInt64Ty(), llvm::Type::getPointerAddressSpace(), llvm::Value::getType(), and llvm::Type::isPtrOrPtrVectorTy().

void llvm::UpgradeCallsToIntrinsic ( Function F)

This is an auto-upgrade hook for any old intrinsic function syntaxes which need to have both the function updated as well as all calls updated to the new function. This should only be run in a post-processing fashion so that it can update all calls to the old function.

Definition at line 556 of file AutoUpgrade.cpp.

References assert(), llvm::Function::eraseFromParent(), UpgradeIntrinsicCall(), UpgradeIntrinsicFunction(), llvm::Value::user_begin(), and llvm::Value::user_end().

bool llvm::UpgradeDebugInfo ( Module M)

Check the debug info version number, if it is out-dated, drop the debug info. Return true if module is modified.

Definition at line 643 of file AutoUpgrade.cpp.

References DEBUG_METADATA_VERSION, llvm::LLVMContext::diagnose(), llvm::Module::getContext(), getDebugMetadataVersionFromModule(), StripDebugInfo(), and llvm::IndexedInstrProf::Version.

Referenced by llvm::BitcodeReader::MaterializeModule().

bool llvm::UpgradeGlobalVariable ( GlobalVariable GV)

This checks for global variables which should be upgraded. It returns true if it requires upgrading.

Definition at line 252 of file AutoUpgrade.cpp.

void llvm::UpgradeInstWithTBAATag ( Instruction I)
void llvm::UpgradeIntrinsicCall ( CallInst CI,
Function NewFn 
)

This is the complement to the above, replacing a specific call to an intrinsic function with a call to the specified new function.

Definition at line 277 of file AutoUpgrade.cpp.

References llvm::CallInst::arg_operands(), assert(), llvm::SmallVectorTemplateCommon< T, typename >::back(), llvm::CallingConv::C, llvm::IRBuilder< preserveNames, T, Inserter >::CreateBitCast(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall2(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall3(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall4(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateICmpEQ(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateICmpSGT(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateInsertElement(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateLoad(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateSExt(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateShuffleVector(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateStore(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateTrunc(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateZExt(), llvm::Intrinsic::ctlz, llvm::Intrinsic::ctpop, llvm::Intrinsic::cttz, llvm::Intrinsic::dbg_declare, llvm::Intrinsic::dbg_value, llvm::StringRef::endswith(), llvm::Instruction::eraseFromParent(), F(), llvm::ConstantInt::get(), llvm::ConstantAsMetadata::get(), llvm::VectorType::get(), llvm::ConstantVector::get(), llvm::MDNode::get(), llvm::UndefValue::get(), llvm::CallInst::getArgOperand(), llvm::CallInst::getCalledFunction(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::Intrinsic::getDeclaration(), getExpression(), llvm::IRBuilderBase::getFalse(), llvm::Type::getFloatTy(), llvm::IRBuilderBase::getInt32(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::IRBuilderBase::getInt8(), llvm::Type::getInt8Ty(), llvm::Function::getIntrinsicID(), llvm::Module::getMDKindID(), llvm::Value::getName(), llvm::CallInst::getNumArgOperands(), llvm::Instruction::getParent(), llvm::GlobalValue::getParent(), llvm::Type::getPointerTo(), llvm::Value::getType(), llvm::PointerType::getUnqual(), llvm::Type::getVectorElementType(), llvm::Type::getVectorNumElements(), I, llvm_unreachable, llvm::SPII::Load, Name, Node, llvm::Intrinsic::objectsize, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::Value::replaceAllUsesWith(), llvm::StoreInst::setAlignment(), llvm::Instruction::setDebugLoc(), llvm::IRBuilderBase::SetInsertPoint(), llvm::Instruction::setMetadata(), llvm::Value::setName(), SI, llvm::StringRef::startswith(), llvm::StringRef::str(), llvm::StringRef::substr(), llvm::Intrinsic::x86_avx2_mpsadbw, llvm::Intrinsic::x86_avx2_pblendd_128, llvm::Intrinsic::x86_avx2_pblendd_256, llvm::Intrinsic::x86_avx2_pblendw, llvm::Intrinsic::x86_avx_blend_pd_256, llvm::Intrinsic::x86_avx_blend_ps_256, llvm::Intrinsic::x86_avx_dp_ps_256, llvm::Intrinsic::x86_sse41_blendpd, llvm::Intrinsic::x86_sse41_blendps, llvm::Intrinsic::x86_sse41_dppd, llvm::Intrinsic::x86_sse41_dpps, llvm::Intrinsic::x86_sse41_insertps, llvm::Intrinsic::x86_sse41_mpsadbw, llvm::Intrinsic::x86_sse41_pblendw, llvm::Intrinsic::x86_sse41_ptestc, llvm::Intrinsic::x86_sse41_ptestnzc, llvm::Intrinsic::x86_sse41_ptestz, llvm::Intrinsic::x86_sse42_crc32_32_8, llvm::Intrinsic::x86_xop_vfrcz_sd, llvm::Intrinsic::x86_xop_vfrcz_ss, llvm::Intrinsic::x86_xop_vpcomb, llvm::Intrinsic::x86_xop_vpcomd, llvm::Intrinsic::x86_xop_vpcomq, llvm::Intrinsic::x86_xop_vpcomub, llvm::Intrinsic::x86_xop_vpcomud, llvm::Intrinsic::x86_xop_vpcomuq, llvm::Intrinsic::x86_xop_vpcomuw, and llvm::Intrinsic::x86_xop_vpcomw.

Referenced by llvm::BitcodeReader::materialize(), llvm::BitcodeReader::MaterializeModule(), and UpgradeCallsToIntrinsic().

bool llvm::UpgradeIntrinsicFunction ( Function F,
Function *&  NewFn 
)

This is a more granular function that simply checks an intrinsic function for upgrading, and returns true if it requires upgrading. It may return null in NewFn if the all calls to the original intrinsic function should be transformed to non-function-call instructions.

Definition at line 239 of file AutoUpgrade.cpp.

References llvm::Intrinsic::getAttributes(), llvm::Function::getContext(), llvm::Function::getIntrinsicID(), llvm::Function::setAttributes(), and UpgradeIntrinsicFunction1().

Referenced by UpgradeCallsToIntrinsic().

void llvm::UpgradeMDStringConstant ( std::string &  String)

Upgrade a metadata string constant in place.

Definition at line 656 of file AutoUpgrade.cpp.

template<typename IntTy >
static char* llvm::utohex_buffer ( IntTy  X,
char *  BufferEnd,
bool  LowerCase = false 
)
inlinestatic

utohex_buffer - Emit the specified number into the buffer specified by BufferEnd, returning a pointer to the start of the string. This can be used like this: (note that the buffer must be large enough to handle any number): char Buffer[40]; printf("0x%s", utohex_buffer(X, Buffer+40));

This should only be used with unsigned types.

Definition at line 56 of file StringExtras.h.

References hexdigit(), and X.

Referenced by utohexstr(), and WriteConstantInternal().

static std::string llvm::utohexstr ( uint64_t  X,
bool  LowerCase = false 
)
inlinestatic
static std::string llvm::utostr ( uint64_t  X,
bool  isNeg = false 
)
inlinestatic
static std::string llvm::utostr_32 ( uint32_t  X,
bool  isNeg = false 
)
inlinestatic

Definition at line 77 of file StringExtras.h.

static size_t llvm::VarAndRedzoneSize ( size_t  Size,
size_t  Alignment 
)
static

Definition at line 43 of file ASanStackFrameLayout.cpp.

References RoundUpTo().

Referenced by ComputeASanStackFrameLayout().

bool llvm::vectorizeBasicBlock ( Pass P,
BasicBlock BB,
const VectorizeConfig C = VectorizeConfig() 
)

Vectorize the BasicBlock.

Parameters
BBThe BasicBlock to be vectorized
PThe current running pass, should require AliasAnalysis and ScalarEvolution. After the vectorization, AliasAnalysis, ScalarEvolution and CFG are preserved.
Returns
True if the BB is changed, false otherwise.

Definition at line 3205 of file BBVectorize.cpp.

bool llvm::verifyFunction ( const Function F,
raw_ostream OS = nullptr 
)

Check a function for errors, useful for use when debugging a pass.

If there are no errors, the function returns false. If an error is found, a message describing the error is written to OS (if non-null) and true is returned.

Definition at line 2851 of file Verifier.cpp.

References assert(), and llvm::GlobalValue::isDeclaration().

Referenced by llvm::CodeExtractor::extractCodeRegion(), LLVMVerifyFunction(), and llvm::VerifierPass::run().

static void llvm::verifyIntrinsicTables ( )
static
bool llvm::verifyModule ( const Module M,
raw_ostream OS = nullptr 
)

Check a module for errors.

If there are no errors, the function returns false. If an error is found, a message describing the error is written to OS (if non-null) and true is returned.

Definition at line 2863 of file Verifier.cpp.

References llvm::Module::begin(), llvm::Module::end(), and I.

Referenced by LLVMVerifyModule(), and llvm::VerifierPass::run().

template<typename GraphType >
void llvm::ViewGraph ( const GraphType &  G,
const Twine &  Name,
bool  ShortNames = false,
const Twine &  Title = "",
GraphProgram::Name  Program = GraphProgram::DOT 
)
template<typename SV >
void llvm::visitAll ( const SCEV *  Root,
SV &  Visitor 
)

Use SCEVTraversal to visit all nodes in the given expression tree.

Definition at line 629 of file ScalarEvolutionExpressions.h.

References T, and llvm::SCEVTraversal< SV >::visitAll().

Referenced by llvm::SCEVAddRecExpr::collectParametricTerms(), llvm::ScalarEvolution::hasOperand(), and isSafeToExpand().

LLVMCodeModel llvm::wrap ( CodeModel::Model  Model)
inline
LLVMContextRef* llvm::wrap ( const LLVMContext **  Tys)
inline

Definition at line 206 of file LLVMContext.h.

LLVMTargetDataRef llvm::wrap ( const DataLayout *  P)
inline

Definition at line 445 of file DataLayout.h.

References P.

Referenced by getMDNodeOperandImpl(), LLVMAddAlias(), LLVMAddFunction(), LLVMAddGlobal(), LLVMAddGlobalInAddressSpace(), LLVMAlignOf(), LLVMAppendBasicBlockInContext(), LLVMArrayType(), LLVMBasicBlockAsValue(), LLVMBlockAddress(), LLVMBuildAdd(), LLVMBuildAddrSpaceCast(), LLVMBuildAggregateRet(), LLVMBuildAlloca(), LLVMBuildAnd(), LLVMBuildArrayAlloca(), LLVMBuildArrayMalloc(), LLVMBuildAShr(), LLVMBuildAtomicRMW(), LLVMBuildBinOp(), LLVMBuildBitCast(), LLVMBuildBr(), LLVMBuildCall(), LLVMBuildCast(), LLVMBuildCondBr(), LLVMBuildExactSDiv(), LLVMBuildExtractElement(), LLVMBuildExtractValue(), LLVMBuildFAdd(), LLVMBuildFCmp(), LLVMBuildFDiv(), LLVMBuildFence(), LLVMBuildFMul(), LLVMBuildFNeg(), LLVMBuildFPCast(), LLVMBuildFPExt(), LLVMBuildFPToSI(), LLVMBuildFPToUI(), LLVMBuildFPTrunc(), LLVMBuildFree(), LLVMBuildFRem(), LLVMBuildFSub(), LLVMBuildGEP(), LLVMBuildGlobalString(), LLVMBuildGlobalStringPtr(), LLVMBuildICmp(), LLVMBuildInBoundsGEP(), LLVMBuildIndirectBr(), LLVMBuildInsertElement(), LLVMBuildInsertValue(), LLVMBuildIntCast(), LLVMBuildIntToPtr(), LLVMBuildInvoke(), LLVMBuildIsNotNull(), LLVMBuildIsNull(), LLVMBuildLandingPad(), LLVMBuildLoad(), LLVMBuildLShr(), LLVMBuildMalloc(), LLVMBuildMul(), LLVMBuildNeg(), LLVMBuildNot(), LLVMBuildNSWAdd(), LLVMBuildNSWMul(), LLVMBuildNSWNeg(), LLVMBuildNSWSub(), LLVMBuildNUWAdd(), LLVMBuildNUWMul(), LLVMBuildNUWNeg(), LLVMBuildNUWSub(), LLVMBuildOr(), LLVMBuildPhi(), LLVMBuildPointerCast(), LLVMBuildPtrDiff(), LLVMBuildPtrToInt(), LLVMBuildResume(), LLVMBuildRet(), LLVMBuildRetVoid(), LLVMBuildSDiv(), LLVMBuildSelect(), LLVMBuildSExt(), LLVMBuildSExtOrBitCast(), LLVMBuildShl(), LLVMBuildShuffleVector(), LLVMBuildSIToFP(), LLVMBuildSRem(), LLVMBuildStore(), LLVMBuildStructGEP(), LLVMBuildSub(), LLVMBuildSwitch(), LLVMBuildTrunc(), LLVMBuildTruncOrBitCast(), LLVMBuildUDiv(), LLVMBuildUIToFP(), LLVMBuildUnreachable(), LLVMBuildURem(), LLVMBuildVAArg(), LLVMBuildXor(), LLVMBuildZExt(), LLVMBuildZExtOrBitCast(), LLVMCloneModule(), LLVMConstAdd(), LLVMConstAddrSpaceCast(), LLVMConstAllOnes(), LLVMConstAnd(), LLVMConstArray(), LLVMConstAShr(), LLVMConstBitCast(), LLVMConstExactSDiv(), LLVMConstExtractElement(), LLVMConstExtractValue(), LLVMConstFAdd(), LLVMConstFCmp(), LLVMConstFDiv(), LLVMConstFMul(), LLVMConstFNeg(), LLVMConstFPCast(), LLVMConstFPExt(), LLVMConstFPToSI(), LLVMConstFPToUI(), LLVMConstFPTrunc(), LLVMConstFRem(), LLVMConstFSub(), LLVMConstGEP(), LLVMConstICmp(), LLVMConstInBoundsGEP(), LLVMConstInlineAsm(), LLVMConstInsertElement(), LLVMConstInsertValue(), LLVMConstInt(), LLVMConstIntCast(), LLVMConstIntOfArbitraryPrecision(), LLVMConstIntOfString(), LLVMConstIntOfStringAndSize(), LLVMConstIntToPtr(), LLVMConstLShr(), LLVMConstMul(), LLVMConstNamedStruct(), LLVMConstNeg(), LLVMConstNot(), LLVMConstNSWAdd(), LLVMConstNSWMul(), LLVMConstNSWNeg(), LLVMConstNSWSub(), LLVMConstNull(), LLVMConstNUWAdd(), LLVMConstNUWMul(), LLVMConstNUWNeg(), LLVMConstNUWSub(), LLVMConstOr(), LLVMConstPointerCast(), LLVMConstPointerNull(), LLVMConstPtrToInt(), LLVMConstReal(), LLVMConstRealOfString(), LLVMConstRealOfStringAndSize(), LLVMConstSDiv(), LLVMConstSelect(), LLVMConstSExt(), LLVMConstSExtOrBitCast(), LLVMConstShl(), LLVMConstShuffleVector(), LLVMConstSIToFP(), LLVMConstSRem(), LLVMConstStringInContext(), LLVMConstStructInContext(), LLVMConstSub(), LLVMConstTrunc(), LLVMConstTruncOrBitCast(), LLVMConstUDiv(), LLVMConstUIToFP(), LLVMConstURem(), LLVMConstVector(), LLVMConstXor(), LLVMConstZExt(), LLVMConstZExtOrBitCast(), LLVMContextCreate(), LLVMCreateBuilderInContext(), LLVMCreateExecutionEngineForModule(), LLVMCreateFunctionPassManagerForModule(), LLVMCreateGenericValueOfFloat(), LLVMCreateGenericValueOfInt(), LLVMCreateGenericValueOfPointer(), LLVMCreateInterpreterForModule(), LLVMCreateJITCompilerForModule(), LLVMCreateMCJITCompilerForModule(), LLVMCreateMemoryBufferWithContentsOfFile(), LLVMCreateMemoryBufferWithMemoryRange(), LLVMCreateMemoryBufferWithMemoryRangeCopy(), LLVMCreateMemoryBufferWithSTDIN(), LLVMCreateObjectFile(), LLVMCreatePassManager(), LLVMCreateTargetData(), LLVMCreateTargetMachine(), LLVMFindFunction(), LLVMFunctionType(), LLVMGetBasicBlockParent(), LLVMGetBasicBlocks(), LLVMGetBasicBlockTerminator(), LLVMGetBitcodeModuleInContext(), LLVMGetCondition(), LLVMGetCurrentDebugLocation(), LLVMGetElementAsConstant(), LLVMGetElementType(), LLVMGetEntryBasicBlock(), LLVMGetExecutionEngineTargetData(), LLVMGetExecutionEngineTargetMachine(), LLVMGetFirstBasicBlock(), LLVMGetFirstFunction(), LLVMGetFirstGlobal(), LLVMGetFirstInstruction(), LLVMGetFirstParam(), LLVMGetFirstTarget(), LLVMGetFirstUse(), LLVMGetGlobalContext(), LLVMGetGlobalParent(), LLVMGetGlobalPassRegistry(), LLVMGetIncomingBlock(), LLVMGetIncomingValue(), LLVMGetInitializer(), LLVMGetInsertBlock(), LLVMGetInstructionParent(), LLVMGetLastBasicBlock(), LLVMGetLastFunction(), LLVMGetLastGlobal(), LLVMGetLastInstruction(), LLVMGetLastParam(), LLVMGetMDNodeOperands(), LLVMGetMetadata(), LLVMGetModuleContext(), LLVMGetNamedFunction(), LLVMGetNamedGlobal(), LLVMGetNamedMetadataOperands(), LLVMGetNextBasicBlock(), LLVMGetNextFunction(), LLVMGetNextGlobal(), LLVMGetNextInstruction(), LLVMGetNextParam(), LLVMGetNextTarget(), LLVMGetNextUse(), LLVMGetOperand(), LLVMGetOperandUse(), LLVMGetParam(), LLVMGetParamParent(), LLVMGetParams(), LLVMGetParamTypes(), LLVMGetPreviousBasicBlock(), LLVMGetPreviousFunction(), LLVMGetPreviousGlobal(), LLVMGetPreviousInstruction(), LLVMGetPreviousParam(), LLVMGetRelocations(), LLVMGetRelocationSymbol(), LLVMGetReturnType(), LLVMGetSections(), LLVMGetStructElementTypes(), LLVMGetSuccessor(), LLVMGetSwitchDefaultDest(), LLVMGetSymbols(), LLVMGetTargetFromName(), LLVMGetTargetFromTriple(), LLVMGetTargetMachineData(), LLVMGetTargetMachineTarget(), LLVMGetTypeByName(), LLVMGetTypeContext(), LLVMGetUndef(), LLVMGetUsedValue(), LLVMGetUser(), LLVMInsertBasicBlockInContext(), LLVMInstructionClone(), LLVMIntPtrType(), LLVMIntPtrTypeForAS(), LLVMIntPtrTypeForASInContext(), LLVMIntPtrTypeInContext(), LLVMIntTypeInContext(), LLVMLabelTypeInContext(), LLVMMDNodeInContext(), LLVMMDStringInContext(), LLVMModuleCreateWithName(), LLVMModuleCreateWithNameInContext(), LLVMParseBitcode(), LLVMParseBitcodeInContext(), LLVMParseIRInContext(), LLVMPassManagerBuilderCreate(), LLVMPointerType(), LLVMRemoveModule(), LLVMRunFunction(), LLVMSizeOf(), LLVMStructCreateNamed(), LLVMStructTypeInContext(), LLVMTypeOf(), LLVMValueAsBasicBlock(), LLVMVectorType(), LLVMVoidTypeInContext(), and LLVMWriteBitcodeToMemoryBuffer().

LLVMTypeRef* llvm::wrap ( Type **  Tys)
inline

Definition at line 482 of file Type.h.

LLVMValueRef* llvm::wrap ( const Value **  Vals)
inline

Definition at line 727 of file Value.h.

static void llvm::WriteAsOperandInternal ( raw_ostream Out,
const Value V,
TypePrinting TypePrinter,
SlotTracker Machine,
const Module Context 
)
static
static void llvm::WriteAsOperandInternal ( raw_ostream Out,
const Metadata MD,
TypePrinting TypePrinter,
SlotTracker Machine,
const Module Context,
bool  FromValue = false 
)
static
static void llvm::writeAtomicRMWOperation ( raw_ostream Out,
AtomicRMWInst::BinOp  Op 
)
static
void llvm::WriteBitcodeToFile ( const Module M,
raw_ostream Out 
)
static void llvm::WriteConstantInternal ( raw_ostream Out,
const Constant CV,
TypePrinting TypePrinter,
SlotTracker Machine,
const Module Context 
)
static
template<>
raw_ostream& llvm::WriteGraph ( raw_ostream O,
const EdgeBundles G,
bool  ShortNames,
const Twine Title 
)

Definition at line 73 of file EdgeBundles.cpp.

References G, and SI.

template<typename GraphType >
raw_ostream& llvm::WriteGraph ( raw_ostream &  O,
const GraphType &  G,
bool  ShortNames = false,
const Twine &  Title = "" 
)
template<typename GraphType >
std::string llvm::WriteGraph ( const GraphType &  G,
const Twine &  Name,
bool  ShortNames = false,
const Twine &  Title = "" 
)

Definition at line 325 of file GraphWriter.h.

References createGraphFilename(), errs(), N, llvm::Twine::str(), and WriteGraph().

static void llvm::writeMDLocation ( raw_ostream Out,
const MDLocation DL,
TypePrinting TypePrinter,
SlotTracker Machine,
const Module Context 
)
static

Definition at line 1289 of file AsmWriter.cpp.

static void llvm::WriteMDNodeBodyInternal ( raw_ostream Out,
const MDNode Node,
TypePrinting TypePrinter,
SlotTracker Machine,
const Module Context 
)
static

Definition at line 1308 of file AsmWriter.cpp.

Referenced by llvm::AssemblyWriter::printMDNodeBody().

static void llvm::WriteMDNodeComment ( const MDNode Node,
formatted_raw_ostream Out 
)
static
static void llvm::writeMDTuple ( raw_ostream Out,
const MDTuple Node,
TypePrinting TypePrinter,
SlotTracker Machine,
const Module Context 
)
static

Definition at line 1252 of file AsmWriter.cpp.

static void llvm::WriteOptimizationInfo ( raw_ostream Out,
const User U 
)
static

Definition at line 939 of file AsmWriter.cpp.

Referenced by llvm::AssemblyWriter::printInstruction().

Variable Documentation

const unsigned llvm::AnnotationNameLen = 9

Definition at line 55 of file NVPTXBaseInfo.h.

const MCInstrDesc llvm::ARMInsts[]

Referenced by AddThumb1SBit().

const char llvm::AsmRewritePrecedence[]
Initial value:
= {
0,
2,
2,
2,
4,
4,
3,
3,
5,
1,
2
}

Definition at line 44 of file MCTargetAsmParser.h.

Referenced by rewritesSort().

char & llvm::AtomicExpandID = AtomicExpand::ID

AtomicExpandID – Lowers atomic operations in terms of either cmpxchg load-linked/store-conditional loops.

Definition at line 60 of file AtomicExpandPass.cpp.

const unsigned char llvm::BitReverseTable256[256]
static
Initial value:
= {
#define R2(n)
#define R4(n)
#define R6(n)
R6(0), R6(2), R6(1), R6(3)
}
#define R6(n)

Macro compressed bit reversal table for 256 bits.

http://graphics.stanford.edu/~seander/bithacks.html#BitReverseTable

Definition at line 227 of file MathExtras.h.

Referenced by reverseBits().

char & llvm::BranchFolderPassID = BranchFolderPass::ID

BranchFolding - This pass performs machine code CFG based optimizations to delete branches to branches, eliminate branches to successor blocks (creating fall throughs), and eliminating branches over branches.

Definition at line 84 of file BranchFolding.cpp.

Referenced by llvm::TargetPassConfig::addMachineLateOptimization(), and overridePass().

char& llvm::BreakCriticalEdgesID
const unsigned llvm::CodeModelLargeSize = 256
static
char & llvm::DeadMachineInstructionElimID = DeadMachineInstructionElim::ID

DeadMachineInstructionElim - This pass removes dead machine instructions.

Definition at line 50 of file DeadMachineInstructionElim.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), and overridePass().

bool llvm::DebugFlag

DebugFlag - This boolean is set to true if the '-debug' command line option is specified. This should probably not be referenced directly, instead, use the DEBUG macro below.

Definition at line 36 of file Debug.cpp.

Referenced by dbgs().

char & llvm::DemoteRegisterToMemoryID = RegToMem::ID

Definition at line 130 of file Reg2Mem.cpp.

const uint16_t llvm::DRegList[]
static
Initial value:
= { ARM::D0, ARM::D1, ARM::D2, ARM::D3,
ARM::D4, ARM::D5, ARM::D6, ARM::D7 }

Definition at line 167 of file ARMCallingConv.h.

Referenced by CC_ARM_AAPCS_Custom_HA().

cl::opt<bool> llvm::DumpCriticalPathLength("misched-dcpl", cl::Hidden, cl::desc("Print critical path length to stdout"))
char & llvm::EarlyIfConverterID = EarlyIfConverter::ID

EarlyIfConverter - This pass performs if-conversion on SSA form by inserting cmov instructions.

Definition at line 608 of file EarlyIfConversion.cpp.

Referenced by overridePass().

char& llvm::EdgeBundlesID

EdgeBundles analysis - Bundle machine CFG edges.

bool llvm::EnableDebugBuffering = false

EnableDebugBuffering - This defaults to false. If true, the debug stream will install signal handlers to dump any buffered debug output. It allows clients to selectively allow the debug stream to install signal handlers if they are certain there will be no conflict.

EnableDebugBuffering - Turn on signal handler installation.

Definition at line 146 of file Debug.cpp.

Referenced by dbgs().

cl::opt<bool> llvm::EnablePatchPointLiveness("enable-patchpoint-liveness", cl::Hidden, cl::init(true), cl::desc("Enable PatchPoint Liveness Analysis Pass"))
unsigned llvm::ErrorsPrinted = 0

Definition at line 23 of file TableGen/Error.cpp.

Referenced by PrintMessage(), and TableGenMain().

char & llvm::ExpandISelPseudosID = ExpandISelPseudos::ID

ExpandISelPseudos - This pass expands pseudo-instructions.

Definition at line 43 of file ExpandISelPseudos.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses().

char & llvm::ExpandPostRAPseudosID = ExpandPostRA::ID

ExpandPostRAPseudos - This pass expands pseudo instructions after register allocation.

Definition at line 59 of file ExpandPostRAPseudos.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses().

char & llvm::FinalizeMachineBundlesID = FinalizeMachineBundles::ID

FinalizeMachineBundles - This pass finalize machine instruction bundles (created earlier, e.g. during pre-RA scheduling).

Definition at line 86 of file MachineInstrBundle.cpp.

bool llvm::flag_aligned_memcpy
cl::opt<bool> llvm::ForceBottomUp("misched-bottomup", cl::Hidden, cl::desc("Force bottom-up list scheduling"))
cl::opt<bool> llvm::ForceTopDown("misched-topdown", cl::Hidden, cl::desc("Force top-down list scheduling"))
char & llvm::GCMachineCodeAnalysisID = GCMachineCodeAnalysis::ID

GCMachineCodeAnalysis - Target-independent pass to mark safe points in machine code. Must be added very late during code generation, just prior to output, and importantly after all CFG transformations (such as branch folding).

Definition at line 313 of file GCStrategy.cpp.

Referenced by llvm::TargetPassConfig::addGCPasses().

template<typename T >
int(*)(const void*, const void*) llvm::get_array_pod_sort_comparator(const T &)
inline

get_array_pod_sort_comparator - This is an internal helper function used to get type deduction of T right.

Definition at line 329 of file STLExtras.h.

Referenced by array_pod_sort().

const unsigned int llvm::host_char_bit = 8

Definition at line 41 of file APInt.h.

const float llvm::huge_valf = HUGE_VALF
char & llvm::IfConverterID = IfConverter::ID

IfConverter - This pass performs machine code if conversion.

Definition at line 267 of file IfConversion.cpp.

char& llvm::InstructionNamerID
Remove redundant false char & llvm::InstructionSimplifierID = InstSimplifier::ID

Definition at line 112 of file SimplifyInstructions.cpp.

const unsigned int llvm::integerPartWidth
const IntrinsicData llvm::IntrinsicsWithChain[]
static

Definition at line 50 of file X86IntrinsicsInfo.h.

Referenced by getIntrinsicWithChain(), and verifyIntrinsicTables().

const IntrinsicData llvm::IntrinsicsWithoutChain[]
static

Definition at line 173 of file X86IntrinsicsInfo.h.

Referenced by getIntrinsicWithoutChain(), and verifyIntrinsicTables().

const int llvm::kAsanStackLeftRedzoneMagic = 0xf1
static

Definition at line 24 of file ASanStackFrameLayout.h.

Referenced by ComputeASanStackFrameLayout().

const int llvm::kAsanStackMidRedzoneMagic = 0xf2
static

Definition at line 25 of file ASanStackFrameLayout.h.

Referenced by ComputeASanStackFrameLayout().

const int llvm::kAsanStackRightRedzoneMagic = 0xf3
static

Definition at line 26 of file ASanStackFrameLayout.h.

Referenced by ComputeASanStackFrameLayout().

const size_t llvm::kMinAlignment = 16
static

Definition at line 34 of file ASanStackFrameLayout.cpp.

Referenced by ComputeASanStackFrameLayout().

char & llvm::LCSSAID = LCSSA::ID

Definition at line 315 of file LCSSA.cpp.

Referenced by SplitCriticalEdge(), and UpdateAnalysisInformation().

char & llvm::LiveIntervalsID = LiveIntervals::ID

LiveIntervals - This analysis keeps track of the live ranges of virtual and physical registers.

Definition at line 48 of file LiveIntervalAnalysis.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc().

Live Stack Slot false char & llvm::LiveStacksID = LiveStacks::ID

LiveStacks pass. An analysis keeping track of the liveness of stack slots.

Definition at line 36 of file LiveStackAnalysis.cpp.

char & llvm::LiveVariablesID = LiveVariables::ID

LiveVariables pass - This pass computes the set of blocks in which each variable is life and sets machine operand kill flags.

Definition at line 44 of file LiveVariables.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc().

char & llvm::LocalStackSlotAllocationID = LocalStackSlotPass::ID

LocalStackSlotAllocation - This pass assigns local frame indices to stack slots relative to one another and allocates base registers to access them when it is estimated by the target to be out of range of normal frame pointer or stack pointer index addressing.

Definition at line 96 of file LocalStackSlotAllocation.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), and llvm::TargetPassConfig::addMachineSSAOptimization().

loop Canonicalize natural false char & llvm::LoopSimplifyID = LoopSimplify::ID

Definition at line 789 of file LoopSimplify.cpp.

Referenced by SplitCriticalEdge().

char& llvm::LowerInvokePassID
char& llvm::LowerSwitchID
char & llvm::MachineBlockPlacementID = MachineBlockPlacement::ID

MachineBlockPlacement - This pass places basic blocks based on branch probabilities.

Definition at line 254 of file MachineBlockPlacement.cpp.

Referenced by llvm::TargetPassConfig::addBlockPlacement(), and overridePass().

char & llvm::MachineBlockPlacementStatsID = MachineBlockPlacementStats::ID

MachineBlockPlacementStats - This pass collects statistics about the basic block placement using branch probabilities and block frequency information.

Definition at line 1168 of file MachineBlockPlacement.cpp.

Referenced by llvm::TargetPassConfig::addBlockPlacement().

char & llvm::MachineCombinerID = MachineCombiner::ID

This pass performs instruction combining using trace metrics to estimate critical-path and resource depth.

Definition at line 84 of file MachineCombiner.cpp.

char & llvm::MachineCopyPropagationID = MachineCopyPropagation::ID

MachineCopyPropagation - This pass performs copy propagation on machine instructions.

Definition at line 61 of file MachineCopyPropagation.cpp.

Referenced by llvm::TargetPassConfig::addMachineLateOptimization(), and overridePass().

char & llvm::MachineCSEID = MachineCSE::ID

MachineCSE - This pass performs global CSE on machine instructions.

Definition at line 109 of file MachineCSE.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), and overridePass().

char & llvm::MachineDominanceFrontierID = MachineDominanceFrontier::ID

MachineDominanaceFrontier - This pass is a machine dominators analysis pass.

Definition at line 38 of file MachineDominanceFrontier.cpp.

char& llvm::MachineDominatorsID

MachineDominators - This pass is a machine dominators analysis pass.

Referenced by llvm::LiveIntervals::getAnalysisUsage().

char & llvm::MachineFunctionPrinterPassID = MachineFunctionPrinterPass::ID

MachineFunctionPrinterPass - This pass prints out MachineInstr's.

Definition at line 54 of file MachineFunctionPrinterPass.cpp.

char & llvm::MachineLICMID = MachineLICM::ID

MachineLICM - This pass performs LICM on machine instructions.

Definition at line 301 of file MachineLICM.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), overridePass(), and llvm::TargetPassConfig::TargetPassConfig().

machine Machine Natural Loop true char & llvm::MachineLoopInfoID = MachineLoopInfo::ID

MachineLoopInfo - This pass is a loop analysis pass.

Definition at line 35 of file MachineLoopInfo.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), and llvm::LiveIntervals::getAnalysisUsage().

char & llvm::MachineSchedulerID = MachineScheduler::ID

MachineScheduler - This pass schedules machine instructions.

Definition at line 145 of file MachineScheduler.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), overridePass(), and llvm::TargetPassConfig::TargetPassConfig().

char & llvm::MachineSinkingID = MachineSinking::ID

MachineSinking - This pass performs sinking on machine instructions.

Definition at line 136 of file MachineSink.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), and overridePass().

char & llvm::MachineTraceMetricsID = MachineTraceMetrics::ID

MachineTraceMetrics - This pass computes critical path and CPU resource usage in an ensemble of traces.

Definition at line 31 of file MachineTraceMetrics.cpp.

const unsigned int llvm::maxExponent = 16383

Definition at line 88 of file APFloat.cpp.

Referenced by powerOf5().

const unsigned int llvm::maxPowerOfFiveExponent = maxExponent + maxPrecision - 1

Definition at line 90 of file APFloat.cpp.

const unsigned int llvm::maxPowerOfFiveParts
Initial value:
= 2 + ((maxPowerOfFiveExponent * 815)
/ (351 * integerPartWidth))
const unsigned int integerPartWidth
Definition: APInt.h:42
const unsigned int maxPowerOfFiveExponent
Definition: APFloat.cpp:90

Definition at line 91 of file APFloat.cpp.

Referenced by powerOf5().

const unsigned int llvm::maxPrecision = 113

Definition at line 89 of file APFloat.cpp.

const unsigned llvm::MIPS_NACL_BUNDLE_ALIGN = 4u
static
const MCInstrDesc llvm::MipsInsts[]

Referenced by getInstDesc().

const char* llvm::NamedMDForAnnotations = "nvvm.annotations"
static

Definition at line 85 of file NVPTXBaseInfo.h.

Referenced by cacheAnnotationFromMD().

const unsigned llvm::NumStratifiedAttrs = 32
static

Definition at line 42 of file StratifiedSets.h.

char & llvm::OptimizePHIsID = OptimizePHIs::ID

OptimizePHIs - This pass optimizes machine instruction PHIs to take advantage of opportunities created during DAG legalization.

Definition at line 61 of file OptimizePHIs.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization().

char & llvm::PeepholeOptimizerID = PeepholeOptimizer::ID

PeepholeOptimizer - This pass performs peephole optimizations - like extension and comparison eliminations.

Definition at line 298 of file PeepholeOptimizer.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization().

char & llvm::PHIEliminationID = PHIElimination::ID

PHIElimination - This pass eliminates machine instruction PHI nodes by inserting copy instructions. This destroys SSA information, but is the desired input for some register allocators. This pass is "required" by these register allocator like this: AU.addRequiredID(PHIEliminationID);

Definition at line 109 of file PHIElimination.cpp.

Referenced by llvm::TargetPassConfig::addFastRegAlloc(), and llvm::TargetPassConfig::addOptimizedRegAlloc().

char & llvm::PostMachineSchedulerID = PostMachineScheduler::ID

PostMachineScheduler - This pass schedules machine instructions postRA.

Definition at line 175 of file MachineScheduler.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses().

char & llvm::PostRASchedulerID = PostRAScheduler::ID

createPostRAScheduler - This pass performs post register allocation scheduling.

Definition at line 189 of file PostRASchedulerList.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), and overridePass().

PowerPC VSX FMA false char & llvm::PPCVSXFMAMutateID = PPCVSXFMAMutate::ID

Definition at line 1895 of file PPCInstrInfo.cpp.

char & llvm::ProcessImplicitDefsID = ProcessImplicitDefs::ID

ProcessImpicitDefs pass - This pass removes IMPLICIT_DEFs.

Definition at line 52 of file ProcessImplicitDefs.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc().

char & llvm::PrologEpilogCodeInserterID = PEI::ID

PrologEpilogCodeInserter - This pass inserts prolog and epilog code, and eliminates abstract frame references.

Definition at line 52 of file PrologEpilogInserter.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses().

const char llvm::PropertyAnnotationNames[PROPERTY_LAST+1][AnnotationNameLen+1]
Initial value:
= {
"maxntidx",
"maxntidy",
"maxntidz",
"reqntidx",
"reqntidy",
"reqntidz",
"minctasm",
"texture",
"surface",
"sampler",
"rdoimage",
"wroimage",
"rdwrimage",
"kernel",
"align",
"managed",
"proplast",
}

Definition at line 56 of file NVPTXBaseInfo.h.

Referenced by getAlign(), getMaxNTIDx(), getMaxNTIDy(), getMaxNTIDz(), getMinCTASm(), getReqNTIDx(), getReqNTIDy(), getReqNTIDz(), isImageReadOnly(), isImageReadWrite(), isImageWriteOnly(), isKernelFunction(), isManaged(), isSampler(), isSurface(), and isTexture().

const uint16_t llvm::QRegList[] = { ARM::Q0, ARM::Q1, ARM::Q2, ARM::Q3 }
static

Definition at line 169 of file ARMCallingConv.h.

Referenced by CC_ARM_AAPCS_Custom_HA().

char & llvm::RegisterCoalescerID = RegisterCoalescer::ID

RegisterCoalescer - This pass merges live ranges to eliminate copies.

end anonymous namespace

Definition at line 225 of file RegisterCoalescer.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc().

cl::opt<bool> llvm::ReuseFrameIndexVals
char & llvm::SIFixSGPRLiveRangesID = SIFixSGPRLiveRanges::ID

Definition at line 99 of file SIFixSGPRLiveRanges.cpp.

char & llvm::SIFoldOperandsID = SIFoldOperands::ID

Definition at line 85 of file SIFoldOperands.cpp.

char & llvm::SILoadStoreOptimizerID = SILoadStoreOptimizer::ID

Definition at line 137 of file SILoadStoreOptimizer.cpp.

char & llvm::SILowerI1CopiesID = SILowerI1Copies::ID

Definition at line 66 of file SILowerI1Copies.cpp.

spill code Spill Code Placement true char & llvm::SpillPlacementID = SpillPlacement::ID

SpillPlacement analysis. Suggest optimal placement of spill code between basic blocks.

Definition at line 54 of file SpillPlacement.cpp.

SourceMgr llvm::SrcMgr
const uint16_t llvm::SRegList[]
static
Initial value:
= { ARM::S0, ARM::S1, ARM::S2, ARM::S3,
ARM::S4, ARM::S5, ARM::S6, ARM::S7,
ARM::S8, ARM::S9, ARM::S10, ARM::S11,
ARM::S12, ARM::S13, ARM::S14, ARM::S15 }

Definition at line 163 of file ARMCallingConv.h.

Referenced by CC_ARM_AAPCS_Custom_HA().

char & llvm::StackColoringID = StackColoring::ID

StackSlotColoring - This pass performs stack coloring and merging. It merges disjoint allocas to reduce the stack size.

Definition at line 178 of file StackColoring.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization().

char & llvm::StackMapLivenessID = StackMapLiveness::ID

StackMapLiveness - This pass analyses the register live-out set of stackmap/patchpoint intrinsics and attaches the calculated information to the intrinsic for later emission to the StackMap.

Definition at line 43 of file StackMapLivenessAnalysis.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses().

char & llvm::StackSlotColoringID = StackSlotColoring::ID

StackSlotColoring - This pass performs stack slot coloring.

Definition at line 117 of file StackSlotColoring.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), and overridePass().

char & llvm::TailDuplicateID = TailDuplicatePass::ID

TailDuplicate - Duplicate blocks with unconditional branches into tails of their predecessors.

Definition at line 130 of file TailDuplication.cpp.

Referenced by llvm::TargetPassConfig::addMachineLateOptimization(), overridePass(), and llvm::TargetPassConfig::TargetPassConfig().

Target llvm::TheAArch64beTarget
Target llvm::TheAArch64leTarget
Target llvm::TheAMDGPUTarget

The target which suports all AMD GPUs. This will eventually be deprecated and there will be a R600 target and a GCN target.

Definition at line 30 of file AMDGPUMCTargetDesc.h.

Referenced by LLVMInitializeR600AsmParser(), LLVMInitializeR600AsmPrinter(), LLVMInitializeR600Target(), LLVMInitializeR600TargetInfo(), and LLVMInitializeR600TargetMC().

Target llvm::TheARM64Target
Target llvm::TheARMBETarget
Target llvm::TheARMLETarget
Target llvm::TheCppBackendTarget
Target llvm::TheGCNTarget
Target llvm::TheHexagonTarget
Target llvm::TheMips64elTarget
Target llvm::TheMips64Target
Target llvm::TheMipselTarget
Target llvm::TheMipsTarget
Target llvm::TheMSP430Target
Target llvm::TheNVPTXTarget32
Target llvm::TheNVPTXTarget64
Target llvm::ThePPC32Target
Target llvm::ThePPC64LETarget
Target llvm::ThePPC64Target
Target llvm::TheSparcTarget
Target llvm::TheSparcV9Target
Target llvm::TheSystemZTarget
Target llvm::TheThumbBETarget
Target llvm::TheThumbLETarget
Target llvm::TheX86_32Target
Target llvm::TheX86_64Target
Target llvm::TheXCoreTarget
bool llvm::TimePassesIsEnabled = false

This is the storage for the -time-passes option.

If the user specifies the -time-passes argument on an LLVM tool command line then the value of this boolean will be true, otherwise false.

Definition at line 26 of file IRReader.cpp.

Referenced by llvm::AsmPrinter::doFinalization(), llvm::DwarfDebug::DwarfDebug(), llvm::AsmPrinter::EmitFunctionBody(), llvm::AsmPrinter::EmitFunctionHeader(), llvm::AsmPrinter::EmitGlobalVariable(), and parseIR().

Two Address instruction false char & llvm::TwoAddressInstructionPassID = TwoAddressInstructionPass::ID

TwoAddressInstruction - This pass reduces two-address instructions to use two operands. This destroys SSA information but it is desired by register allocators.

Definition at line 172 of file TwoAddressInstructionPass.cpp.

Referenced by llvm::TargetPassConfig::addFastRegAlloc(), and llvm::TargetPassConfig::addOptimizedRegAlloc().

char & llvm::UnpackMachineBundlesID = UnpackMachineBundles::ID

UnpackMachineBundles - This pass unpack machine instruction bundles.

Definition at line 35 of file MachineInstrBundle.cpp.

char& llvm::UnreachableMachineBlockElimID

UnreachableMachineBlockElimination - This pass removes unreachable machine basic blocks.

Referenced by llvm::LiveVariables::getAnalysisUsage().

char & llvm::VirtRegRewriterID = VirtRegRewriter::ID

VirtRegRewriter pass. Rewrite virtual registers to physical registers as assigned in VirtRegMap.

Definition at line 180 of file VirtRegMap.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc().

RegisterPass<NVPTXAllocaHoisting> llvm::X("alloca-hoisting","Hoisting alloca instructions in non-entry ""blocks to the entry block")
static

Referenced by abs(), llvm::ConstantRange::add(), llvm::AliasSetTracker::add(), llvm::cl::parser< const PassInfo * >::addLiteralOption(), cast(), checkForNegativeOperand(), llvm::InstCombiner::commonIDivTransforms(), createAArch64MCCodeGenInfo(), createAArch64MCInstrInfo(), createAArch64MCRegisterInfo(), createAArch64MCSubtargetInfo(), createAMDGPUMCCodeGenInfo(), createAMDGPUMCInstrInfo(), createAMDGPUMCRegisterInfo(), createAMDGPUMCSubtargetInfo(), createARMMCCodeGenInfo(), createARMMCInstrInfo(), createARMMCRegisterInfo(), llvm::ARM_MC::createARMMCSubtargetInfo(), createHexagonMCCodeGenInfo(), createHexagonMCInstrInfo(), createHexagonMCRegisterInfo(), createHexagonMCSubtargetInfo(), createMipsMCCodeGenInfo(), createMipsMCInstrInfo(), createMipsMCRegisterInfo(), createMipsMCSubtargetInfo(), createMSP430MCCodeGenInfo(), createMSP430MCInstrInfo(), createMSP430MCRegisterInfo(), createMSP430MCSubtargetInfo(), createNVPTXMCCodeGenInfo(), createNVPTXMCInstrInfo(), createNVPTXMCRegisterInfo(), createNVPTXMCSubtargetInfo(), createPPCMCCodeGenInfo(), createPPCMCInstrInfo(), createPPCMCRegisterInfo(), createPPCMCSubtargetInfo(), createSparcMCCodeGenInfo(), createSparcMCInstrInfo(), createSparcMCRegisterInfo(), createSparcMCSubtargetInfo(), createSparcV9MCCodeGenInfo(), createSystemZMCCodeGenInfo(), createSystemZMCInstrInfo(), createSystemZMCRegisterInfo(), createSystemZMCSubtargetInfo(), createX86MCCodeGenInfo(), createX86MCInstrInfo(), createX86MCRegisterInfo(), llvm::X86_MC::createX86MCSubtargetInfo(), createXCoreMCCodeGenInfo(), createXCoreMCInstrInfo(), createXCoreMCRegisterInfo(), createXCoreMCSubtargetInfo(), llvm::mdconst::dyn_extract(), llvm::mdconst::dyn_extract_or_null(), expandExp(), expandExp2(), expandLog(), expandLog10(), expandLog2(), expandPow(), llvm::OnDiskChainedHashTable< Info >::find(), llvm::InstCombiner::FoldICmpDivCst(), foldSelectICmpAndOr(), llvm::InstCombiner::FoldShiftByConstant(), llvm::PMDataManager::freePass(), genConstMult(), llvm::SDNode::getVTList(), isa(), isKnownNonZero(), isKnownToBeAPowerOfTwo(), isSafeToSpeculativelyExecute(), LLVMInitializeAArch64AsmParser(), LLVMInitializeAArch64AsmPrinter(), LLVMInitializeAArch64Target(), LLVMInitializeAArch64TargetMC(), LLVMInitializeARMAsmParser(), LLVMInitializeARMAsmPrinter(), LLVMInitializeARMTarget(), LLVMInitializeARMTargetInfo(), LLVMInitializeARMTargetMC(), LLVMInitializeCppBackendTarget(), LLVMInitializeHexagonAsmPrinter(), LLVMInitializeHexagonTarget(), LLVMInitializeHexagonTargetInfo(), LLVMInitializeHexagonTargetMC(), LLVMInitializeMipsAsmParser(), LLVMInitializeMipsAsmPrinter(), LLVMInitializeMipsTarget(), LLVMInitializeMipsTargetInfo(), LLVMInitializeMipsTargetMC(), LLVMInitializeMSP430AsmPrinter(), LLVMInitializeMSP430Target(), LLVMInitializeMSP430TargetInfo(), LLVMInitializeMSP430TargetMC(), LLVMInitializeNVPTXAsmPrinter(), LLVMInitializeNVPTXBackendAsmPrinter(), LLVMInitializeNVPTXTarget(), LLVMInitializeNVPTXTargetInfo(), LLVMInitializeNVPTXTargetMC(), LLVMInitializePowerPCTargetInfo(), LLVMInitializeR600Target(), LLVMInitializeSparcAsmPrinter(), LLVMInitializeSparcTarget(), LLVMInitializeSparcTargetInfo(), LLVMInitializeSparcTargetMC(), LLVMInitializeSystemZAsmParser(), LLVMInitializeSystemZAsmPrinter(), LLVMInitializeSystemZTarget(), LLVMInitializeSystemZTargetInfo(), LLVMInitializeX86AsmParser(), LLVMInitializeX86AsmPrinter(), LLVMInitializeX86Target(), LLVMInitializeX86TargetInfo(), LLVMInitializeXCoreAsmPrinter(), LLVMInitializeXCoreTarget(), LLVMInitializeXCoreTargetInfo(), LLVMInitializeXCoreTargetMC(), lowerFCOPYSIGN32(), lowerFCOPYSIGN64(), LowerSDIV_v4i8(), llvm::DIHeaderFieldIterator::operator!=(), llvm::DIHeaderFieldIterator::operator++(), operator<<(), llvm::DebugLoc::operator=(), llvm::TrackingMDRef::operator=(), llvm::UseListOrder::operator=(), llvm::TypedTrackingMDRef< MDNode >::operator=(), OptimizeAndOrXor(), PerformOrCombine(), llvm::SetVector< llvm::BasicBlock * >::remove(), llvm::RGPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), llvm::FPPassManager::runOnFunction(), llvm::TargetLowering::TargetLoweringOpt::ShrinkDemandedOp(), SimplifyAndOfICmps(), SimplifyAShrInst(), SimplifyDiv(), SimplifyFSubInst(), SimplifyLShrInst(), SimplifyMulInst(), SimplifyOrOfICmps(), SimplifySelectInst(), SimplifyShlInst(), SimplifySubInst(), simplifyUnsignedRangeCheck(), llvm::opt::StrCmpOptionNameIgnoreCase(), llvm::ConstantRange::sub(), sub_1(), llvm::TrackingMDRef::TrackingMDRef(), tryLowerToSLI(), utohex_buffer(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAnd(), llvm::InstCombiner::visitAShr(), llvm::InstCombiner::visitBranchInst(), llvm::InstCombiner::visitCallInst(), llvm::InstCombiner::visitFCmpInst(), llvm::InstCombiner::visitFDiv(), llvm::InstCombiner::visitICmpInst(), llvm::InstCombiner::visitICmpInstWithInstAndIntCst(), llvm::InstCombiner::visitMul(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitSDiv(), llvm::InstCombiner::visitSelectInstWithICmp(), llvm::InstCombiner::visitSub(), llvm::InstCombiner::visitUDiv(), llvm::InstCombiner::visitZExt(), and wrap().